📅  最后修改于: 2023-12-03 15:16:22.253000             🧑  作者: Mango
Java中的 CopyOnWriteArrayList是一个线程安全的动态数组,它通过对底层数组的复制来实现线程安全。CopyOnWriteArrayList类中包含有toString()方法,用于以字符串形式返回CopyOnWriteArrayList的元素。本文将介绍CopyOnWriteArrayList toString()方法的详细用法和实现机制。
CopyOnWriteArrayList toString()方法是一个重载的方法,它有两种形式:
public String toString()
: 返回一个包含CopyOnWriteArrayList中所有元素的字符串;public String toString(String delimiter)
: 返回一个包含CopyOnWriteArrayList中所有元素的字符串,每个元素之间用给定的分隔符隔开。CopyOnWriteArrayList的toString()方法是通过StringBuilder来实现的。它会先迭代CopyOnWriteArrayList集合中的所有元素,将元素拼接到StringBuilder对象中,最后返回StringBuilder对象的字符串表现形式。
以下是CopyOnWriteArrayList toString()方法的实现代码片段:
public String toString() {
Iterator<E> it = iterator();
if (! it.hasNext())
return "[]";
StringBuilder sb = new StringBuilder();
sb.append('[');
for (;;) {
E e = it.next();
sb.append(e == this ? "(this Collection)" : e);
if (! it.hasNext())
return sb.append(']').toString();
sb.append(", ");
}
}
以下是CopyOnWriteArrayList toString()方法的使用示例:
import java.util.concurrent.CopyOnWriteArrayList;
public class Main {
public static void main(String[] args) {
CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
// 返回所有元素的字符串
System.out.println(list.toString());
// 返回所有元素,用";"隔开
System.out.println(list.toString(";"));
}
}
输出结果为:
[apple, banana, orange]
apple;banana;orange
CopyOnWriteArrayList是一个线程安全的动态数组,它的toString()方法可以返回一个包含CopyOnWriteArrayList中所有元素的字符串。CopyOnWriteArrayList toString()方法的实现机制是通过StringBuilder来实现的。在使用CopyOnWriteArrayList toString()方法时,可以通过指定分隔符来控制输出格式。