Java集合
2020-07-24 14:04:42 0 举报
AI智能生成
Java集合的结构以及性能描述
作者其他创作
大纲/内容
set接口
① HashSet
不能重复、无序、线程不安全、集合元素可以为null。
底层数据结构是哈希表,查询效率高。存入HashSet的元素要重写equals()方法和
HashCode()方法,如果不重写则允许语义上的重复
底层数据结构是哈希表,查询效率高。存入HashSet的元素要重写equals()方法和
HashCode()方法,如果不重写则允许语义上的重复
① LinkedHashSet
不能重复、有序、线程不安全、集合元素可以为null。
底层数据结构是链表和哈希表,链表保证顺序,哈希表保证元素的唯一性
底层数据结构是链表和哈希表,链表保证顺序,哈希表保证元素的唯一性
② TreeSet
不能重复,有序、线程不安全、不能放入null
实现了SortedSet接口,底层数据结构是红黑树
实现了SortedSet接口,底层数据结构是红黑树
排序
自然排序:要求放入其中的元素的类必须实现Comparable接口,所以不能放入null元素
TreeSet中不能存放基本数据类型,只能加入相同类型对象或者父类对象,否则会抛出ClassCaseException
TreeSet中不能存放基本数据类型,只能加入相同类型对象或者父类对象,否则会抛出ClassCaseException
客户化排序:构建TreeSet对象的时候直接就声明排序规则,使用Comparator接口,实现compare方法(与compreTo方法相似)。优点:这样就算是没有实现Comparable接口的类的对象也能加入到TreeSet集合中去
List接口
① ArrayList
底层数组结构,查询快,增删慢,线程不安全。默认初始容量为10,扩容增量:原容量的 1.5倍+1
② Vector
底层数组结构,查询快,增删慢,线程安全。默认初始容量为10,扩容增量:原容量的 2倍。一共有三个构造方法,无参,可指定默认长度可设置增长因子
③ LinkedList
底层是链表结构,查询慢,增删快,线程不安全
记录插入顺序,可以重复,可以添加null
Map接口
① HashMap
底层数据结构是哈希表,线程不安全,此时Map中的Key不会保证添加的先后顺序,key也不允许重复。key判断重复的标准为equals为true,并且允许存在一个为null的key,多个为null的value
① LinkedHashMap
采用链表和哈希表算法,此时Map中的key会保证先后添加的顺序,key不允许重复
② HashTable
采用哈希表算法,线程安全,HashTable的key和value都不允许null
③ TreeMap
采用红黑树算法,线程不安全,此时Map中的key会按照自然顺序或指定排序进行排序,key允许重复,key判断重复的标准为CompareTo/compare的返回值是否为0
遍历Map的方式
keySet方法获得集合set,再循环遍历key获取value
entrySet方法
0 条评论
下一页