集合进阶
1. Collection
-
常用方法
- add()
- remove()
- clear()
- contains()
- isEmpty()
- size()
-
迭代器 iterator
-
常用方法
- hasNext()
- next()
while(it.hasNext()){
System.out.println(it.next());
}
-
2. List
-
常用方法
- add(int index, E element)
- remove(int index)
- set(int index, E element)
- get(int index)
-
并发修改异常 ConcurrentModificationException
产生原因:迭代器遍历的过程,通过集合对象修改了集合中元素的长度,造成了迭代器获取元素中判断预期修改值和实际修改值不一致。
while(it.hasNext()){String s = it.next();if(s.equals("world")){list.add("java");} }
解决方案:用for循环遍历,然后用集合对象做对应的操作即可。
for(int i = 0;i < list.size(); i++){String s = list.get(i);if(s.equals("world")){list.add("java");} }
-
ArrayList(数组),LinkedList(链表)
3. Set
HashSet
底层数据结构是哈希表,不包含重复元素。
LinkedHashSet
哈希表和链表实现set接口
元素有序
元素唯一
###TreeSet
元素有序,具体排序方法取决于构造方法(重写CompareTo接口/参数内重写Compare方法)
元素唯一
4. 泛型
-
类型通配符
-
可变参数:int…a
Map
Interface Map<K, V>
Map<String, String> map = new HashMap<String, String>();
map.put("","");