同步ArrayList (Synchronizing ArrayList)

In java, there are two ways to synchronize ArrayList,

在Java中,有两种同步ArrayList的方法,

  1. With the help of synchronizedList() method

    借助syncedList()方法

  2. With the help of CopyOnWriteArrayList<T> method

    借助CopyOnWriteArrayList <T>方法

1)使用syncedList(列表列表)方法同步ArrayList (1) Synchronizing ArrayList using synchronizedList(List list) method)

  • This method is available in java.util package.

    此方法在java.util包中可用。

  • With the help of this method, we can make ArrayList synchronized.

    借助此方法,我们可以使ArrayList同步。

  • This is a static method, it is accessible with the class name too. (i.e. If we try to access with the class object, in that case, we will not get any error or exception).

    这是一个静态方法,也可以使用类名进行访问。 (即,如果我们尝试使用类对象进行访问,则不会得到任何错误或异常)。

  • This method does not throw any exception at the time of synchronizing an ArrayList.

    在同步ArrayList时,此方法不会引发任何异常。

Syntax:

句法:

    public static List synchronizedList(List list);

Parameter(s):

参数:

  • list – represents the ArrayList to be binded in a synchronized list.

    list –表示要绑定到同步列表中的ArrayList。

Return value:

返回值:

The return type of this method is List, it returns the synchronized view of the given list.

该方法的返回类型为List ,它返回给定列表的同步视图。

Example:

例:

// Java program to demonstrate the example of
// synchronizing an ArrayList by using synchronizedList() method
import java.util.*;
public class SynchronizeArrayList {public static void main(String[] args) {// ArrayList Declaration
ArrayList al = new ArrayList();
// By using add() method to add few elements in
//ArrayList
al.add(10);
al.add(20);
al.add(30);
al.add(40);
al.add(50);
// Display ArrayList
System.out.print("Display ArrayList : " + " ");
System.out.println(al);
Collections.synchronizedList(al);
synchronized(al) {Iterator itr = al.iterator();
System.out.println("Display synchronized ArrayList:");
while (itr.hasNext())
System.out.println(itr.next() + " ");
}
}
}

Output

输出量

Display ArrayList :  [10, 20, 30, 40, 50]
Display synchronized ArrayList:
10
20
30
40
50

2)使用CopyOnWriteArrayList同步ArrayList (2) Synchronizing ArrayList using CopyOnWriteArrayList)

  • CopyOnWriteArrayList is a synchronized thread-safe class.

    CopyOnWriteArrayList是一个同步的线程安全类。

  • In the case of CopyOnWriteArrayList, more than one threads are allowed to work on.

    对于CopyOnWriteArrayList,允许多个线程进行处理。

  • It works on different cloned copy for update operations.

    它适用于不同的克隆副本以进行更新操作。

  • During one thread iterating CopyOnWriteArrayList object and at the same time other thread can modify because it works on the separate cloned copy.

    在一个线程中迭代CopyOnWriteArrayList对象时,同时另一个线程可以修改,因为它可以在单独的克隆副本上工作。

Example:

例:

// Java program to demonstrate the example of
// synchronizing an ArrayList by using CopyOnWriteArrayList
import java.util.*;
import java.util.concurrent.*;
public class SynchronizeArrayList {public static void main(String[] args) {// CopyOnWriteArrayList Declaration
CopyOnWriteArrayList < Integer > cowal = new CopyOnWriteArrayList < Integer > ();
// By using add() method to add few elements in
// CopyOnWriteArrayList
cowal.add(10);
cowal.add(20);
cowal.add(30);
cowal.add(40);
cowal.add(50);
// Display ArrayList
System.out.print("Display CopyOnWriteArrayList : " + " ");
System.out.println(cowal);
// Iterate ArrayList using iterator()
Iterator < Integer > itr = cowal.iterator();
System.out.println("Display synchronized ArrayList:");
while (itr.hasNext())
System.out.println(itr.next() + " ");
}
}

Output

输出量

Display CopyOnWriteArrayList :  [10, 20, 30, 40, 50]
Display synchronized ArrayList:
10
20
30
40
50

翻译自: https://www.includehelp.com/java/synchronize-arraylist-in-java.aspx

如何在Java中同步ArrayList?相关推荐

  1. java中为什么同步_如何在Java中同步工作

    如何在Java中同步工作 首先, 这是一个示例 : public class Deadlock { static class Friend { private final String name; p ...

  2. java arraylist 倒置_如何在Java中反转ArrayList?

    反转ArrayList 为了在Java中反转ArrayList的元素,我们使用Collections类的reverse()方法. reverse()方法reverse()方法在java.util包中可 ...

  3. 如何在Java中使ArrayList只读?

    使ArrayList只读 (Making ArrayList Read-Only) Given an ArrayList, and we have to make it Read-Only in Ja ...

  4. java对arraylist排序吗_如何在Java中对ArrayList进行排序

    我有一堂水果课.我正在创建此类的列表,并将每个水果添加到列表中.我想根据水果名称的顺序对该列表进行排序. public class Fruit{ private String fruitName; p ...

  5. Java中使用ArrayList的10个示例–教程

    Java中的ArrayList是HashMap之后最常用的集合类. Java ArrayList表示一个可自动调整大小的数组,并用于代替数组. 由于创建数组后我们无法修改数组的大小,因此我们更喜欢在J ...

  6. 如何在Java中处理ConcurrentModificationException? 在循环中从ArrayList中删除元素时要当心...

    从Java中从ArrayList中删除元素时常见的问题之一是ConcurrentModificationException. 如果您对索引使用经典的for循环或增强的for循环,并尝试使用remove ...

  7. 如何在Java中创建一个新的List

    本文翻译自:How to make a new List in Java We create a Set as: 我们创建一个Set为: Set myset = new HashSet() How d ...

  8. java整数的因式分解_如何在Java中找到整数的质数-因式分解

    java整数的因式分解 编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的素数因子是将精确地除以给定数字的所有素 ...

  9. 如何在Java中找到整数的质因数–因式分解

    编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的质数因子是将精确地除以给定数字的所有质数. 例如,35的素数因 ...

最新文章

  1. mahout相关笔记
  2. Sprites实现翻页按钮,圆角,宽度不固定
  3. 浙江大学-计算机中的数学(诙谐幽默的短视频)
  4. 【数学和算法】初识卡尔曼滤波器(五)
  5. java lamda循环条件_Java lambda 循环累加求和代码
  6. grunt -- javascript自动化工具
  7. 解决EF 4.0 中数据缓存机制
  8. 【惊天】京东任命周伯文担任京东云与AI事业部负责人 全面负责AI、云计算、IoT三大技术领域!
  9. js 导出excel_Laravel Excel3.0导出
  10. 机器学习时显卡频率莫明其妙的降低了?
  11. 批量修改文件夹及文件用户权限和用户组权限 centos
  12. webpack全局安装和安装过程中碰见的一些坑(npm error)解决方案
  13. 什么是消息队列及消息队列原理和应用场景详解
  14. cad直线和圆弧倒角不相切_数控加工中心如何使用任意角度倒角C和倒圆角R功能的编程...
  15. Elasticsearch报错received plaintext traffic on an encrypted channel, closing connection Netty4TcpChann
  16. springboot+hutool批量生成二维码压缩导出
  17. 云安全将来时 | 云安全的发展与未来趋势
  18. VS中C++导入并使用DLL文件使用步骤
  19. 听雨小筑---开张纪念
  20. cocos2dx卡牌翻转效果

热门文章

  1. 在百度搜索页添加公司总部的客服电话
  2. UEditor 任意文件上传漏洞
  3. 魅族android n内测报名,不再万年Android 5.0! Flyme安卓N内测招募开启
  4. 用js来实现那些数据结构06(队列)
  5. CheckList 如何梳理可减少上线的验证时间(总结篇)
  6. 【RabbitMQ】2、心得总结,资料汇总
  7. easyui 插入中间行
  8. [BZOJ3529][Sdoi2014]数表
  9. WinForm Paenl里面添加Form
  10. Eclipse 代码提示无效的解决方法