Java中集合关键字的区别

 

1、 ArrayList、Vector和Stack有什么区别?

1、ArrayList的方法和实现基本上和Vector一样,底层都是数组的实现(简:API基本一样)  2、Stack继承了Vector,两者的方法都是线程安全,ArrayList没有考虑线程的问题 3、vector速度慢,ArrayList做了优化,效率更高

 

2、 ArrayList 和 LinkedList 的区别?

1、 ArrayList底层是数组的实现,linkedList地层是连接的实现(简:数据结构不同) 1.1在java中链表就是自己实现一个类,在类中记录了前一个和后一个的地址,每次查找都需要找到前一个或后一个才能往前或者往后找 2、ArrayList查找速度快,删除和插入速度慢 (常用) 3、LinkedList查找速度慢,删除和插入速度快 4、LinkedList有自己独有的方法:addFirst() addLast() removeLast() removeFirst()。(首尾重要)

3、set和List的区别?

① set接口下的集合特点:

1、没有下标 ​ 2、无序的 ​ 3、不能重复(前面的被后面的覆盖)

② List接口下的集合特点:

1、有下标 ​ 2、有序的(按照添加的顺序获取) ​ 3、可以重复

set转list:

List< 类名 > list = new ArrayList< >( set类 );

 

 

4、collections 和collection的区别?

collections是java.util下的工具类,其下有 set 及 list;

collection是java.util下的接口;

 

5、HashSet 和TreeSet的区别?

HashSet不可以排序

TreeSet可以排序(但是他是用自己的一种方排序规则排序),实现自定义类的排序时必须实现Compare接口的compareTo方法

 

1、HashSet(hashset比较是否相等,根据两个对象的哈希值)

1、HashSet不可以排序 1)、add()--- 添加元素,会先判断是否为同一对象。出于业务上的考虑我们需要重写HasgCoda方法和equals方法,来判断两个对象是业务上的相等。 2)、remove(Object o)--- 将元素从集合中移除 3)、size()---查看集合长度

 

HashSet特点:

1)、遍历时没有顺序, 2)、允许包含null 3)、类中不允许出现重复元素。 4)、不能有for循环遍历能用foreach或while循环遍历

 

2、TreeSet 1、TreeSet可以排序(但是他是用自己的一种方排序规则排序),实现自定义类的排序时必须实现Compare接口的compareTo方法 1)、first()----返回第一个元素 2)、last()----返回最后一个元素 3)、pollLast()---删除最后一个元素 4)、pollFirst()---删除第一个元素

1、使用外部比较器对TreeSet中的元素进行排序,外部比较器作为TreeSet的构造方法参数传递过去。 ​ 2、使用外部比较器,我们自定义的类可以不用实现CompareTo

 

3、Hash的优缺点:

优点:删,增、查很快,提高存储率

缺点:无序,不可重复

 

 

6、Comparable和Comparator的区别?

Comparable在java.long包;

Comparator在java.util包;

 


 

7、集合和数组的区别?

①、数组创建长度固定,集合长度会随集合元素的添加自动扩展。

②、集合中只能存放对象的引用,而数组可以有基本类型,也可以有引用类型。

③、集合中的算法更加丰富,使用集合操作数据会比数组简洁。

猜你喜欢

转载自www.cnblogs.com/suger-4/p/12003159.html
今日推荐