IT TIP

ArrayList에서 요소의 모든 발생 제거

itqueen 2020. 12. 9. 22:04
반응형

ArrayList에서 요소의 모든 발생 제거


을 사용 java.util.ArrayList하고 있으며 특정 요소의 모든 발생을 제거하고 싶습니다.

    List<String> l = new ArrayList<String>();
    l.add("first");
    l.add("first");
    l.add("second");

    l.remove("first");

첫 번째 발생 만 제거합니다. 그러나 l.remove("first");목록이 "second"값으로 만 빠질 것으로 예상 한 후에 모든 발생이 제거되기를 원합니다 . 인터넷 검색을 통해 새 목록을 만들고을 호출하여 얻을 수 있음을 발견했습니다 list.removeAll(newList). 그러나 새 목록을 만들지 않고 모든 항목을 제거 할 수 있습니까? 아니면이를 달성하는 데 사용할 수있는 API가 있습니까?


l.removeAll(Collections.singleton("first"));

Java 8을 사용하는 또 다른 방법 :

l.removeIf("first"::equals);

while(l.remove("first")) { }

이렇게하면 목록에서 모든 요소 "첫 번째"가 제거됩니다.


removeAll()방법을 사용할 수 있습니다 .

list.removeAll(Arrays.asList("someDuplicateString"));

귀하의 예에서 문자열을 사용하고 있기 때문에 트릭을해야한다고 생각합니다.

for(int i = 0; i < list.size();i++){
    if(list.get(i).equals(someStringNameOrValue)){
        list.remove(i--);
    }
}

질문을 오해 한 것 같습니다. 내 대답을 업데이트했습니다. 내가 맞아? "first"의 모든 항목을 제거 하시겠습니까?

참고 URL : https://stackoverflow.com/questions/13565876/remove-all-occurrences-of-an-element-from-arraylist

반응형