java中集合选择(精简)

时间:2022-09-03 16:04:25
集合类中只能存放对象,而不能存放原始数据类型的元素,
所以当有原始数据类型需要存放时,只能将其转换成相应的包装类对象。




1)访问和遍历数组元素时,ArrayList的性能优越;


2)与ArrayList相比,如果需要频繁地添加和删除元素,LinkedList的性能更加优越;


3)Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作.


4)Vector类与ArrayList类和LinkedList类很相似,最大的区别在于Vector是线程同步的;如果在多线程的程序中要使用到集


合框架,并且不希望线程与线程之间相互干扰,那么Vector是不错的选择;


5)同步是安全的
异步是不安全的


6)接口
HashSet、TreeSet、LinkedHashSet都是set类型,它们的区别?
HashSet提供了最快的查找技术,TreeSet按照比较结果的升序保存对象,LinkedHashSet按照添加顺序保存对象。
HashMap、TreeMap和LinkedHashMap跟上面一样


7)如要快速检索元素的话,HashMap性能优越;(注意:有hash这个词在里面的都是无序的)
HashMap是键值对应的形式存储元素的
HashTable允许使用 null 值和 null 键。



8)可重复存储对象:ArrayList、
不可重复:HashSet、TreeSet、LinkedHashSet


9)Queue:队列,先进先出


10)如何选择集合类
1. 无顺序要求,选HashSet
2. 对顺序有求,选ArrayList
3. 要顺序,经常修改,选LinkedList
4. 键-值  HashMap


11)总结
java.util包中包含一系列常用的工具类和集合框架类;
Date类和Calendar类用来操作日期和时间;
可以使用Random类的对象来生成随机数;
集合框架提供了一系列复杂的数据结构和优越的算法;
ArrayList类可以创建动态数组;
LinkedList类可以创建链表结构;
Vector类可以创建线程同步的动态数组;
HashMap类可以创建键值对集合。