How to use JDK 7 CopyOnWriteArrayList

package com.onlinecodegeek.java.numbers;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Random;import java.util.concurrent.CopyOnWriteArrayList;public class CopyOnWriteArrayListDemo {  public static void main(String[] args) {    CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<String>();    startUpdatingThread(list);    for (String element : list) {      System.out.println("Element :" + element);    }    updatingThread.interrupt();    List<String> lista = Collections.synchronizedList(new ArrayList<String>());    lista.add("hi");    lista.add("hello");    lista.add("welcome");    lista.add("java");    lista.add("servlet");    lista.add("onlinecodegeek");    lista.add("apple");    lista.add("motorola");    lista.add("google");    lista.add("becbe");       startUpdatingThread(lista);    synchronized (lista) {      for (String element : lista) {        System.out.println("Element :" + element);      }    }    updatingThread.interrupt();  }  static Thread updatingThread;  private static void startUpdatingThread(final List<String> list) {    updatingThread = new Thread(new Runnable() {      long counter = 0;      public void run() {        while (!Thread.interrupted()) {          int size = list.size();          Random random = new Random();          if (random.nextBoolean()) {            if (size > 1) {              list.remove(random.nextInt(size - 1));            }          } else {            if (size < 20) {              list.add("Random string " + counter);            }          }          counter++;        }      }    });    updatingThread.start();  }}
SHARE

    Blogger Comment
    Facebook Comment

0 comments :

Post a Comment