Java集合概述Set、List、Map
来源:互联网 发布:徐志雷ti7知乎 编辑:程序博客网 时间:2024/05/01 03:18
Java的集合类是由两个接口类派生而出:Collection、Map
1、Collection接口派生出来的Set集合是无序集合,派生出的List集合是有序集合、队列Queue
-Set集合中的元素无序不允许重复
-List集合类似数组,元素有序同时长度可变,且元素允许重复
2、Set集合:
(1)Set集合不能记住元素的添加顺序,不允许包含重复元素,如果添加重复元素,会添加失败,返回false,且不会添加进入;
(2)HashSet类:集合元素值可以为null;如果多个线程访问一个HashSet,需要通过代码保证其同步(非线程安全的)
注:如果把一个对象放入到HashSet中,重写了equals方法,则需要重写HashCode方法(即两个方法要保持同步)
(3)LinkedHashSet类:HashSet的子类,根据hashCode方法计算位置,同时使用链表维护元素次序,内部元素是有序的(添加顺序)
注:Set集合实现类HashSet、TreeSet、EnumSet都是线程不安全的,可以通过Collections工具类的synchronizedSortSet进行包装该Set集合,保证多个线程访问一个Set集合时的线程安全;Set集合遍历可以使用iterator迭代器进行迭代;
3、List集合:
(1)List集合代表元素有序,可重复的集合,默认按照添加顺序设置元素的索引
(2)List集合遍历除了可以使用iterator迭代器外,还提供ListIterator迭代器进行遍历
(3)ArrayList和Vector实现类:基于数组实现的List类,他们均封装了一个动态的、允许动态再分配的Object[]数组(如果初始长度不指定,则为10);另外ArrayList是线程不安全的,Vector是线程安全的;(遍历建议get方法)
(4)LinkedList类:List接口的实现类,遍历建议采用Iterator迭代器;
2、Map集合是有顺序的,是key-value对应的,key不可以重复,但value可以重复:
(1)Map转为set使用entrySet方法
(2)HasnTable是一个线程安全的Map实现,但不允许使用null为key或者value的键值对;HashMap是线程不安全的,同时可以使用null作为key或者value;
(3)HashTable和HashMap不能保证key和value键值对的顺序;(相等判断仅仅比较value相同即可)
(4)LinkedHashMap使用双向链表来维护;
注:Map遍历:
map集合不能直接遍历,需要转变为Set集合利用Iterator迭代器进行遍历;
keySet()以及entrySet方法结合while或者for-each遍历
- Java集合概述Set、List、Map
- 【Java】 集合类概述-List、Map、Set
- java集合 set list map
- [java]集合 list set map
- java集合 list set map
- java集合set,list、map
- Java list-set-map集合
- java集合(list,set,map)
- java 集合 List Map Set
- java基础集合框架——List、Set、Map概述(java集合一)
- java基础集合框架——List、Set、Map概述(java集合一)
- Java集合(list,Set,Map)集合
- java 容器Collection List Set Map概述
- List Set 集合概述
- JAVA集合的认识[Set,List,Map]
- Java集合List,Set,Map基础
- java集合map,set,list区别
- java集合map,set,list区别
- Spring MVC Velocity模板引擎
- linux中信号量和互斥
- OpenStack开发环境选型(一)
- CSU 1642 Problem B
- Convolutional neural network
- Java集合概述Set、List、Map
- eclipse在资源管理器中打开文件
- 数据存储&&文件读写
- linux驱动之自旋锁(spinlock)
- 结构型模式总结
- 数据结构 实践项目——数据结构、算法、程序设计
- Oracle11完全卸载方法
- python笔记9
- 3D图形渲染管线