1、数组与集合的区别:
1)数组的长度不变,集合的长度是可变的;
2)数组的所有元素都是同一类型,而集合可以存储不同类型的元素;
3)数组可以存储值类型与引用类型,但是集合只能存储引用类型。
2、集合的分类(collection和map)
collection(单值)分为list(有序、可重复)和set(无序、不可重复)
map(键值对)
3、遍历集合的方法(iterator和foreach)
1)Iterator iterator = list.iterator();
while(iterator.hasnext()){
System.out.println(iterator.next());
}
2)for(类型 元素名 : 集合名){
//注意:此处只能读取,不能修改;若要修改,使用普通for循环
}
4、实现List接口的一般三个类的区别
1)ArrayList: 底层是数组,查询快,增删慢,线程不安全,效率高;
2)LinkedList: 底层是链表,查询慢,增删块,线程不安全,效率高;
3)Vector: 底层是数组,查询快,增删慢,线程安全,效率低。//一般不使用Vector,而是使用Collections.synchronizedList(new ArrayList<E>()); 来转成线程安全
5、遍历set一般不使用foreach;
遍历map一般方法:
1)首先找到所有的key,遍历key,根据key找value。用到keyset()方法。
2)直接找到所有的value。用到values()方法。
3)找出所有的键值对,然后再遍历。用到Set<Map.Entry<String,String>> setName = mapName.entrySet();
6、HashMap与HashTable的区别:
1)HashMap允许使用null键值,而HashTable的键值不能为null;
2)HashMap线程不安全,效率高,而HashTable线程安全,效率低。