網(wǎng)站首頁 編程語言 正文
? ? ? ? 1、利用List的迭代器刪除集合中的元素(推薦)
/**
*
* 利用List的迭代器刪除集合中的元素(推薦)
* @author :xiarg
* @date : 2023/4/14 9:02
*/
@Test
public void iteratorDelListTest(){
List<String> list = new ArrayList<>(Arrays.asList("lilei","hanmeimei","zhangsan","lisi"));
log.info("刪除之前的List集合 -> {}",list);
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){
String item = iterator.next();
if(item.contains("m")){
iterator.remove();
}
}
log.info("刪除之后的List集合 -> {}",list);
}
? ? ? ? 2、stream過濾掉不想要的數(shù)據(jù),但是新生成了一個集合
/**
*
* stream過濾掉不想要的數(shù)據(jù),但是新生成了一個集合
* @author :xiarg
* @date : 2023/4/14 9:20
*/
@Test
public void streamDelListTest(){
List<String> list = new ArrayList<>(Arrays.asList("lilei","hanmeimei","zhangsan","lisi"));
log.info("刪除之前的List集合 -> {}",list);
list = list.stream().filter( item -> !item.contains("m")).collect(Collectors.toList());
log.info("刪除之后的List集合 -> {}",list);
}
? ? ? ? 3、采用集合的removeIf()方法(),實際上也是利用了1中的迭代器方法
/**
*
* 采用集合的removeIf()方法
* 實際上也是使用迭代器操作的
* @author :xiarg
* @date : 2023/4/14 9:23
*/
@Test
public void removeIfDelListTest(){
List<String> list = new ArrayList<>(Arrays.asList("lilei","hanmeimei","zhangsan","lisi"));
log.info("刪除之前的List集合 -> {}",list);
list.removeIf(item -> item.contains("m"));
log.info("刪除之后的List集合 -> {}",list);
}
? ? ? ? 4、采用for循環(huán)刪除指定元素
/**
*
* 采用for循環(huán)刪除指定元素,先獲取集合size。
* 刪除一個元素i減少1,size減少1
* 減少的原因:由于當(dāng)前元素被刪除,后續(xù)元素下標(biāo)會變成當(dāng)前元素下標(biāo),如果i不減1,將跳過一個元素,
* size減少1是因為集合減少元素。for循環(huán)需要減少一次
* @author :xiarg
* @date : 2023/4/14 9:39
*/
@Test
public void forDelList(){
List<String> list = new ArrayList<>(Arrays.asList("lilei","hanmeimei","zhangsan","lisi"));
log.info("刪除之前的List集合 -> {}",list);
int size = list.size();
for (int i = 0; i < size; i++) {
String item = list.get(i);
if(item.contains("m")){
list.remove(item);
i--;
size--;
}
}
log.info("刪除之后的List集合 -> {}",list);
}
? ? ? ? 5、采用for倒敘循環(huán)
/**
*
* 采用for倒敘循環(huán),由于刪除后面的元素,不影響前面的元素的下標(biāo)
* @author :xiarg
* @date : 2023/4/14 9:39
*/
@Test
public void forBackDelList(){
List<String> list = new ArrayList<>(Arrays.asList("lilei","hanmeimei","zhangsan","lisi"));
log.info("刪除之前的List集合 -> {}",list);
int size = list.size();
for (int i = size -1 ; i >= 0; i--) {
String item = list.get(i);
if(item.contains("m")){
list.remove(item);
}
}
log.info("刪除之后的List集合 -> {}",list);
}
? ? ? ? 6、新建一個集合,循環(huán)新建的集合的元素,操作刪除老集合
/**
*
* 新建一個集合,循環(huán)新建的集合的元素,操作刪除老集合(這個方法太笨了)
* @author :xiarg
* @date : 2023/4/14 9:39
*/
@Test
public void newListDelList(){
List<String> list = new ArrayList<>(Arrays.asList("lilei","hanmeimei","zhangsan","lisi"));
List<String> newList = new ArrayList<>(list);
log.info("刪除之前的List集合 -> {}",list);
int size = newList.size();
for (int i = 0; i < size; i++) {
String item = newList.get(i);
if(item.contains("m")){
list.remove(i);
}
}
log.info("刪除之后的List集合 -> {}",list);
}
? ? ? ? 筆者推薦使用第一個。
原文鏈接:https://blog.csdn.net/m0_65014849/article/details/130147088
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2022-04-25 Python如何生成exe文件?用Pycharm一步步帶你學(xué)(超詳細(xì)、超貼心)_python
- 2022-11-11 C++泛型模板約束深入講解_C 語言
- 2022-03-22 C++using聲明和using編譯指令_C 語言
- 2022-12-11 centos離線安裝mongodb-database-tools方法詳解_MongoDB
- 2023-01-12 Android入門之BroadCast模擬實現(xiàn)異地登錄事件發(fā)生后的主動退出_Android
- 2022-04-19 python 讀寫yaml
- 2022-07-31 C++?容器?Vector?的使用方法_C 語言
- 2022-04-28 C#委托用法詳解_C#教程
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支