網站首頁 編程語言 正文
? ? ? ? 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過濾掉不想要的數據,但是新生成了一個集合
/**
*
* stream過濾掉不想要的數據,但是新生成了一個集合
* @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循環刪除指定元素
/**
*
* 采用for循環刪除指定元素,先獲取集合size。
* 刪除一個元素i減少1,size減少1
* 減少的原因:由于當前元素被刪除,后續元素下標會變成當前元素下標,如果i不減1,將跳過一個元素,
* size減少1是因為集合減少元素。for循環需要減少一次
* @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倒敘循環
/**
*
* 采用for倒敘循環,由于刪除后面的元素,不影響前面的元素的下標
* @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、新建一個集合,循環新建的集合的元素,操作刪除老集合
/**
*
* 新建一個集合,循環新建的集合的元素,操作刪除老集合(這個方法太笨了)
* @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
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-06-08 FreeRTOS實時操作系統Cortex-M內核使用注意事項_操作系統
- 2022-04-01 Python格式化輸出之format用法詳解_python
- 2022-05-06 Docker?刪除及清理鏡像的方法_docker
- 2022-01-16 npm run dev 報錯:missing script:dev
- 2022-05-19 利用python3如何給數據添加高斯噪聲_python
- 2022-05-20 子查詢關鍵字-ALL、ANY、SOME、IN、EXISTS
- 2022-09-25 Linux中安裝和配置Redis
- 2022-12-23 Sql?Server?壓縮數據庫日志文件的方法_MsSql
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支