Maison >Java >javaDidacticiel >De combien de façons puis-je synchroniser une ArrayList en Java ?

De combien de façons puis-je synchroniser une ArrayList en Java ?

WBOY
WBOYavant
2023-08-28 17:41:021012parcourir

在Java中,有几种方法可以同步一个ArrayList?

ArrayList est une sous-classe de la classe AbstractList, qui peut être utilisée pour stocker des éléments d'une collection de taille dynamique. ArrayList augmente sa taille pour accueillir de nouveaux éléments et diminue lorsque des éléments sont supprimés, d'où le nom resizing ou tableau dynamique. ArrayList peut autoriser les valeurs en double et les valeurs nulles .

Il existe deux méthodes pour synchroniser ArrayList en Java

Méthode Collections.synchronizedList ()

synchronizedList() est utilisée pour synchroniser les collections en Java.

Syntax

public static List<T> synchronizedList(List<T> list)

Example

import java.util.*;
public class SynchronizedListTest {
   public static void main(String[] args) {
      List<String> list = new ArrayList<String>();
      list.add("IND");
      list.add("AUS");
      list.add("WI");
      list.add("NZ");
      list.add("ENG");
      List<String> synlist = Collections.<strong>synchronizedList</strong>(list);
      <strong>synchronized</strong>(synlist) {
         Iterator<String> itr = synlist.iterator();
         while(itr.hasNext()) {
            String str = itr.next();
            System.out.println(str);
         }
      }
   }
}

Output

IND
AUS
WI
NZ
ENG

CopyOnWriteArrayList

CopyOnWriteArrayList créera une liste d'éléments dans l'ordre de collection spécifié. Il est thread safe pour ArrayList avec accès simultané. Lorsqu'une ArrayList est modifiée, elle crée une nouvelle copie du tableau sous-jacent.

Syntaxe

public class CopyOnWriteArrayList<E> extends Object implements List<E>, RandomAccess, Cloneable, Serializable

Exemple

import java.util.*;
import java.util.concurrent.*;
public class CopyOnWriteArrayListTest {
   public static void main(String[] args) {
      <strong>CopyOnWriteArrayList </strong>list = new <strong>CopyOnWriteArrayList</strong>();
      list.add("Java");
      list.add("Scala");
      list.add("Python");
      list.add("Selenium");
      list.add("ServiceNow");
      System.out.println("Displaying synchronized ArrayList: ");
      Iterator itr = list.iterator();
      while(itr.hasNext()) {
         String str = itr.next();
         System.out.println(str);
      }
   }
}

Sortie

Displaying synchronized ArrayList:
Java
Scala
Python
Selenium
ServiceNow

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer