JAVA LIST需要移除其中某一元素,这里简单的列出几个可行方法
1、利用迭代器移除,参考代码如下:
String token="3",tokens="1,2,3,4"; ListtokenList= MyStrUtils.strToStrList(tokens); Iterator iterator = tokenList.iterator(); while(iterator.hasNext()) { String next = iterator.next(); if (next.equals(token)) { iterator.remove(); } } log.info("SIZE:{}",tokenList.size()); log.info("NEWTOKENS:{}",MyStrUtils.join(tokenList,","));
2、FOR遍历INDEX递减移除,参考代码如下:
String token="3",tokens="1,2,3,4"; ListtokenList= MyStrUtils.strToStrList(tokens); for(int i=tokenList.size()-1;i>=0;i--){ if(tokenList.get(i).equals(token)){ tokenList.remove(i); } } log.info("SIZE:{}",tokenList.size()); log.info("NEWTOKENS:{}",MyStrUtils.join(tokenList,","));
3、FOR遍历INDEX递增移除,参考代码如下:
String token="3",tokens="1,2,3,4"; ListtokenList= MyStrUtils.strToStrList(tokens); for(int i=0;i 4、利用stream流过滤,参考代码如下:
String token="3",tokens="1,2,3,4"; ListtokenList= MyStrUtils.strToStrList(tokens); List tokenList_new=tokenList.stream().filter(item -> !item.equals(token)).collect(toList()); log.info("SIZE:{}",tokenList_new.size()); log.info("NEWTOKENS:{}",MyStrUtils.join(tokenList_new,",")); 四种方法运行的结果均如下:
ARRAY中移除某一元素和LIST又不同,你需要将后面所有的元素提前以达到原地移除符合元素的目的,参考代码如下:(暂时未完成)



