集合进阶
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("","");
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦