JAVA LIST需要移除其中某一元素,这里简单的列出几个可行方法
1、利用迭代器移除,参考代码如下:
String token="3",tokens="1,2,3,4";
List<String> tokenList= MyStrUtils.strToStrList(tokens);
Iterator<String> 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";
List<String> tokenList= 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";
List<String> tokenList= MyStrUtils.strToStrList(tokens);
for(int i=0;i<tokenList.size();i++){
if(tokenList.get(i).equals(token)){
tokenList.remove(i);
i--;
}
}
log.info("SIZE:{}",tokenList.size());
log.info("NEWTOKENS:{}",MyStrUtils.join(tokenList,","));
4、利用stream流过滤,参考代码如下:
String token="3",tokens="1,2,3,4";
List<String> tokenList= MyStrUtils.strToStrList(tokens);
List<String> 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又不同,你需要将后面所有的元素提前以达到原地移除符合元素的目的,参考代码如下:(暂时未完成)