java中List数组遍历删除

List数组遍历删除

环境

  • jdk8
  • junit 单元测试

正解

1// 正解1, jdk自带的addAll方法 2 @Test 3 public void test18() { 4 String[] strs = {"12","34","56","78","90"}; 5 List<String> list = Arrays.asList(strs); 6 List<String> list2 = new ArrayList<>(); 7 list2.addAll(list); 8 System.out.println(list); 9 for (String s : list) { 10 System.out.println(s); 11 list2.remove(s); 12 } 13 } 14 15// 正解2 Hutool的 CollUtil 工具类中addAll方法 16 @Test 17 public void test18() { 18 String[] strs = {"12","34","56","78","90"}; 19 List<String> list = Arrays.asList(strs); 20 List<String> list2 = new ArrayList<>(); 21 CollUtil.addAll(list2,list); 22 System.out.println(list2); 23 for (String s : list) { 24 System.out.println(s); 25 list2.remove(s); 26 } 27 } 28 29boolean b = list1.removeIf(a -> (a % 2) == 0); 30 System.out.println(b);

错解

新手代码踩坑日记

1// 第一错 2 @Test 3 public void test18() { 4 String[] strs = {"12","34","56","78","90"}; 5 List<String> list = Arrays.asList(strs); 6 System.out.println(list); 7 for (String s : list) { 8 System.out.println(s); 9 list.remove(s); 10 } 11 } 12 13报错信息: 14 15[12, 34, 56, 78, 90] 1612 17 18java.lang.UnsupportedOperationException 不支持的操作异常 19 at java.util.AbstractList.remove(AbstractList.java:161) 20 at java.util.AbstractList$Itr.remove(AbstractList.java:374) 21 at java.util.AbstractCollection.remove(AbstractCollection.java:293) 22 23 24// 第二错 : 老子新建个对象来存还是错??? 仔细想想-->TMD谁写的垃圾代码,好像是我写的... 25// 方法栈里面就一个list对象,只是复制一份引用,而remove是直接操作数组内存空间 26 @Test 27 public void test18() { 28 String[] strs = {"12","34","56","78","90"}; 29 List<String> list = Arrays.asList(strs); 30 List<String> list2 = new ArrayList<>(); 31 list2 = list; 32 System.out.println(list); 33 for (String s : list) { 34 System.out.println(s); 35 list2.remove(s); 36 } 37 } 38 39直接报错 +1: 40[12, 34, 56, 78, 90] 4112 42 43java.lang.UnsupportedOperationException 44 at java.util.AbstractList.remove(AbstractList.java:161) 45 at java.util.AbstractList$Itr.remove(AbstractList.java:374) 46 at java.util.AbstractCollection.remove(AbstractCollection.java:293) 47
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

List的Select 和Select().tolist()

List<PersondelpnewList<Person{newPerson{Id1,Name"小明1",Age11,Sign0},newPerson{Id2,Name"小明2",Age12,

Java开发者容易犯的十个错误

!(https://oscimg.oschina.net/oscnet/c9f00cc918684fbe8a865119d104090b.gif)Top1.数组转换为数组列表将数组转换为数组列表,开发者经常会这样做:\java\List<StringlistArrays.asList(arr);Arr