List常用方法

list.addAll

list.addAll(list);// 向集合追加一个collection,只可追加collection,由于java不提供collection的实现,由它的下级接口来实现
list.addAll(4, list);// 与上述含义相同, “4”意为追加元素所放的位置

list.subList()

list.subList(1,3)//返回下标从1到3的数据 ,包括左不包括右 即返回下标为1,2的数据

list.indexOf()

//在集合中查找元素 ,"a"如果有 ,返回所查找元素的下标,如果不存在则返回-1
list.indexOf("a");

list.clear()

list.clear();// 调用clear方法清空集合中的所有数据

list.equals(list2)

//该方法去比较两个对象时,首先先去判断两个对象是否具有相同的地址,如果是同一个对象的引用,则直接放回true;如果地址不一样,
//则证明不是引用同一个对象,接下来就是挨个去比较两个字符串对象的内容是否一致,完全相等返回true,否则false。
list.equals(arr);//false

list.isEmpty

有没有瓶子 list != null

瓶子里有没有水 list.isEmpty()

判断的时候一定要注意先后顺序 如果没有瓶子都没有,直接判断有没有水,是会报nullException的

list.add(null)会造成list.isEmpty() 为false,但是list.size()为1, 所以代码里要避免list.add(null)的陷阱 。

list==null,它其实是根本没有在堆内是不存在的,没有存储的地址。但是list.size()=0是已经存在地址,但是并没有存相应的元素,当元素的数量增加是,size随之变化。

null说明了没有进行初始化,此时要是调用任何的方法的话都会抛出空指针异常,而list.size()==0表示此list已经new过,但是其中没有存入任何值。

isEmpty先获取size的值在判断再返回,list.size则是直接返回属性size的值,相对isEmpty较快。看源码:

 public boolean isEmpty() {
     return size == 0;
 }

List定义时添加多条数据

List<Integer> requiredCol = new ArrayList<Integer>() {{ add(1);add(2);add(3);add(4); }};

list.remove(i)

list.remove(i);//移除指定位置数据

Stream操作List

List取出对象中某一属性

List<String> ids=list.stream().map(User::getId).collect(Collectors.toList());

List,将id属性逗号拼接

String str = List.stream().map(User::getId).collect(Collectors.joining(","));

List,将id属性逗号拼接后转换为Strnig类型

String str = List.stream().map(Restriction::getId).collect(Collectors.toList()).stream().map(w->w.toString()).collect(Collectors.joining(","));

List转换为Map

Map<Integer, String> result1= list.stream().collect(                Collectors.toMap(User::getId, Hosting::getName));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值