2 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
如果您只想刪除ArrayList
以某個(gè)字母開頭的每個(gè)元素,您可以使用以下removeIf()
方法:
刪除此集合中滿足給定謂詞的所有元素。
wrodList.removeIf(e -> e.contains(thisLetter));
(需要 Java 8+)
聽起來您希望在每次刪除元素后重置列表。為此,您可以創(chuàng)建一個(gè)副本ArrayList
進(jìn)行檢查,然后在每次之后將其設(shè)置回原始副本:
List<String> copy = new ArrayList<>(wordList); //Creates a copy of wordList

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊
我相信這就是你正在尋找的。我不確定你是想要一個(gè)實(shí)例還是靜態(tài)方法。我相信您的問題是您沒有創(chuàng)建副本。我記下了我在哪里創(chuàng)建副本。祝你在 CS 中好運(yùn)......我們都曾一度陷入困境。
public static void someRandomFunction(){
List<String> arrList = new ArrayList<>(Arrays.asList("Hello",
"Everyone",
"I'm",
"Struggling",
"In",
"Computer",
"Science"));
System.out.println(removeIfContains(arrList, "H")); // calling the function and passing the list and what
System.out.println(removeIfContains(arrList, "I")); // I want to remove from the list
}
public static List<String> removeIfContains(List<String> strList, String removeIf){
List<String> tempList = new ArrayList<>(strList); // creating a copy
for(int i = 0; i < tempList.size(); i++){
if(tempList.get(i).contains(removeIf))
tempList.remove(i);
}
return tempList; // returning the copy
}
添加回答
舉報(bào)