看板 java 關於我們 聯絡資訊
要篩選 Collection 裡面的元素 開一個新的容器去接是比較合理的做法 像你原本在 for (int i = 0; i < list.size(); i++) 裡面去 remove list 的元素 每 remove 一次長度就變短 到最後長度剩下 list.size() 只有 7 等於後面幾個元素都沒跑到 不知道你有沒有用 IDE, 如果用 IntelliJ 的話 他的提醒功能其實比 Eclipse 強不少 像這種錯誤就會被他抓出來 兩個版本給你參考一下 // 普通版 List<String> list = new ArrayList<>(); list.add("123"); list.add("333"); list.add(""); list.add("555"); list.add("666"); list.add(""); list.add("888"); list.add(" "); list.add(" "); list.add(" 999"); System.out.println("前" + list); List<String> newList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { String s = list.get(i).trim(); if (s.length() != 0) { newList.add(s); } } System.out.println("後" + newList); // lambda 版 List<String> list = new ArrayList<>(); list.add("123"); list.add("333"); list.add(""); list.add("555"); list.add("666"); list.add(""); list.add("888"); list.add(" "); list.add(" "); list.add(" 999"); System.out.println("前" + list); List<String> newList = list.stream().map((s) -> s.trim()) .filter((s) -> s.length() != 0) .collect(Collectors.toList()); System.out.println("後" + newList); -- ╔═ ═╦╦═════╦═════╗ ◤◤◤ ╠╣飛鳥ももこ╠═╗ ║ ║╚═════╝ ╚═╦═╣ ║╔══════╗╔═╩═╣ █◤ ╠╣Momoko Asuka╠╝ ║ ◣◢◣◢╩╩══════╩════╝ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.28.7 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/java/M.1598513438.A.78E.html
akk98: 感恩 我蠢了 忘了砍掉後 我的長度會變短 傻了 = = 09/04 19:27