第一、遍历List
1.for循环遍历
for(int i = 0; i < list.size(); i++){
list.get(i);
}
2.foreach循环遍历,常用
for(X x: list){
x.get(id);
}
3.iterator遍历,进行删除操作
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()){
iterator.next();
if(……){
iterator.remove();
}
}
第二、List去重
1.lambda表达式去重(1.8)
List newList = list.stream().distinct().collect(Collectors.toList());
2.set和list转换去重(打乱顺序)
Set set = new HashSet();
List newList = new ArrayList();
set.addAll(list);
newList.addAll(set2);
3.set集合辅助去重(不打乱顺序)
Set set = new HashSet();
List newList = new ArrayList();
for (Integer integer : list) {
if(set.add(integer)) {
newList.add(integer);
}
}
4.set集合辅助去重(不打乱顺序,简洁升级版)
List newList = new ArrayList(new LinkedHashSet(list)));
5.双重循环去重
简单,不再赘述,注意使用iterator
第三、contains方法
List的contains方法要注意,如果是一个对象的列表,contains比较的是啥呢?
equals()的默认行为是比较引用。
所以List的contains()比较对象,需要重写对象的equals()和hashCode()方法。
第四、List插入元素
如:列表为 [a, b, c, d, e] ,在下标为2的地方插入“f”
list.add(2, 'f');
输出:
[a, b, f, c, d, e]
第五、List截取部分元素subList()
如,获取list的前三个元素
List newList=list.subList(0, 3);
注意:这样并不是得到一份copy,newList只不过是映射到list部分,改变newList也会改变list,反之亦然(包括修改、增加、删除元素等操作)。
第六、list转为map
根据某个条件进行分组,放入map
//条件是根据类X的x域进行分组,放入map,key是x
Map<String, List<X>> newMap = list.stream().collect(Collectors.groupingBy(X::getX));
第七、取出list对象中的某个域,当做一个新list
list是对象X的列表,取X的域x,当做一个新list
List<String> newList = list.stream().map(X::getX).collect(Collectors.toList());
第八、分割list
List<List<X>> lists = Lists.partition(list, 1000);