CopyOnWriteArrayList provides a new method
public boolean addIfAbsent(E e), which adds elements only if that element is not present in the List.
This is helpful when you need to add only unique elements into your list.
addIfAbsent(E e) method return true if the element is added in the list, else returns false if the element already exists in the list.
Sample Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
package com.kscodes.collections.samples; import java.util.concurrent.CopyOnWriteArrayList; public class CopyOnWriteArrayListAddIfAbsentEx { public static void main(String[] args) { // Create a copyOnWriteArrayList object CopyOnWriteArrayList<String> copyOnWriteArrayList = new CopyOnWriteArrayList<>(); // Adding 4 elements using add() method copyOnWriteArrayList.add("Zero"); copyOnWriteArrayList.add("One"); copyOnWriteArrayList.add("Two"); copyOnWriteArrayList.add("Three"); // Printing the added elements System.out.println(copyOnWriteArrayList); // Now use addIfAbsent method. // "Two" already present in list hence addIfAbsent will return false; boolean flagForTwo = copyOnWriteArrayList.addIfAbsent("Two"); System.out.println("Return Value of addIdAbsent() method while trying to add \"Two\" :: " + flagForTwo); // "Four" already present in list hence addIfAbsent will return true; boolean flagForFour = copyOnWriteArrayList.addIfAbsent("Four"); System.out.println("Return Value of addIdAbsent() method while trying to add \"Four\" :: " + flagForFour); // Again printing the elements to see if the elements were added System.out.println(copyOnWriteArrayList); } } |