<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 如何在 java 中同步`ArrayList` > 原文: [https://beginnersbook.com/2013/12/how-to-synchronize-arraylist-in-java-with-example/](https://beginnersbook.com/2013/12/how-to-synchronize-arraylist-in-java-with-example/) 當我們在[`Vector` vs `ArrayList`](https://beginnersbook.com/2013/12/difference-between-arraylist-and-vector-in-java/) 上共享教程時,我們已經討論了一些關于同步的問題。我們知道`ArrayList`是非同步的,不應在沒有顯式同步的多線程環境中使用。這篇文章將討論如何在 Java 中同步`ArrayList`。 **顯式同步有兩種方法:** 1. 使用`Collections.synchronizedList()`方法 2. 使用`ArrayList`的線程安全變體:`CopyOnWriteArrayList` ### 示例 1:用于同步`ArrayList`的`Collections.synchronizedList()`方法 在這個例子中,我們使用 [`Collections.synchronizedList()`](https://docs.oracle.com/javase/6/docs/api/java/util/Collections.html#synchronizedList(java.util.List))方法。這里要注意的重點是迭代器應該在這種類型的同步中處于同步塊中,如下例所示。 ```java package beginnersbook.com; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Collections; public class Details { public static void main(String a[]){ List<String> syncal = Collections.synchronizedList(new ArrayList<String>()); //Adding elements to synchronized ArrayList syncal.add("Pen"); syncal.add("NoteBook"); syncal.add("Ink"); System.out.println("Iterating synchronized ArrayList:"); synchronized(syncal) { Iterator<String> iterator = syncal.iterator(); while (iterator.hasNext()) System.out.println(iterator.next()); } } } ``` 輸出: ```java Iterating synchronized ArrayList: Pen NoteBook Ink ``` ### 方法 2:使用`CopyOnWriteArrayList` [CopyOnWriteArrayList](https://docs.oracle.com/javase/6/docs/api/java/util/concurrent/CopyOnWriteArrayList.html) 是`ArrayList`的線程安全變體。 ```java package beginnersbook.com; import java.util.concurrent.CopyOnWriteArrayList; import java.util.Iterator; public class Details { public static void main(String a[]){ CopyOnWriteArrayList<String> al = new CopyOnWriteArrayList<String>(); //Adding elements to synchronized ArrayList al.add("Pen"); al.add("NoteBook"); al.add("Ink"); System.out.println("Displaying synchronized ArrayList Elements:"); //Synchronized block is not required in this method Iterator<String> iterator = al.iterator(); while (iterator.hasNext()) System.out.println(iterator.next()); } } ``` 輸出: ```java Displaying synchronized ArrayList Elements: Pen NoteBook Ink ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看