1.ArrayList和Linkedlist的区别:
先说下ArrayList的优点和缺点:
arraylist(数组结构),简单通俗的说就是查询快,增删改慢。
而linkedlist(链表结构)相反:增删改快,查询慢。
所以在实际项目中增删改一般选用 linkedlist,查询就选用arraylist
代码测试:
public void test(){
//增加方面
ArrayList arrayList = new ArrayList();
LinkedList linkedList = new LinkedList();
//给每个集合添加一些数据,比较时间
for(int i = 0; i < 1000; i++){
Object obj = new Object();
arrayList.add(0,obj);//耗时多
// linkedList.add(0,obj);//耗时少
}
long start = System.currentTimeMillis();
//拿数据方面
for(int i = 0; i < linkedList.size(); i++){
//arrayList.get(i);//耗时少
linkedList.get(i);//耗时多
}
long end = System.currentTimeMillis();
System.out.println("耗时:------"+(end-start));
}
2.array与arraylist的区别:
arrayList是array的复杂版本,array只能存储相同的数据类型数据,而arrayList可以存储不同数据类型的数据,还有就是
array的长度是固定的,而arrayList得长度是可变得。
3.list和数组间得相互转换
数组转list可以使用 Array.asList(数组);
list转数组使用 list.toArray();
4.HashSet,TreeSet,LinkedHashSet三者间的区别:
这个根据实际的项目需求选用,
4.1:需要速度快的集合就用HashSet
4.2:需要集合有排序功能就用TreeSet
4.3:需要按照插入的顺序存储集合的话就用 linkedHashSet.
所以区别就是hashSet速度快,treeSet有排序,linkedHashSet根据插入的顺序存储。
5.HashMap,TreeMap,linkedHashMap的区别:
5.1:在map中插入删除和定位元素的话无疑HashMap是最好的选择
5.2:需要集合排序,就使用TreeMap
5.3:需要按照插入顺序存储就是linkedHashMap
6.HashMap和HashSet的区别
hashMap实现了Map接口,是键值对存储数据的,向map中添加元素调put();,hashMap相对于hashSet比较快。
hashSet实现了Ste接口,存储的是对象,向set中添加元素调用add(),hashSet相对于hashMap比较慢。
7.List,Set,Map之间的区别:
list和set都是继承的Collection,但是Map不是Collection的子接口。
list是可以运行重复的元素,也可以插入多个null元素,list是有序的,插入的顺序和输出的顺序一样。
set不允许重复元素,它只允许一个null元素,无序的。
map键值对存储,键唯一,值可以重复,键只允许一个null,值可以允许多个null,也是无序的
今天理解的就这么多了!感谢阅读!