📌  相关文章
📜  Java中的 CopyOnWriteArrayList toString() 方法(1)

📅  最后修改于: 2023-12-03 15:16:22.253000             🧑  作者: Mango

Java中的 CopyOnWriteArrayList toString() 方法

Java中的 CopyOnWriteArrayList是一个线程安全的动态数组,它通过对底层数组的复制来实现线程安全。CopyOnWriteArrayList类中包含有toString()方法,用于以字符串形式返回CopyOnWriteArrayList的元素。本文将介绍CopyOnWriteArrayList toString()方法的详细用法和实现机制。

CopyOnWriteArrayList toString()方法简介

CopyOnWriteArrayList toString()方法是一个重载的方法,它有两种形式:

  • public String toString(): 返回一个包含CopyOnWriteArrayList中所有元素的字符串;
  • public String toString​(String delimiter): 返回一个包含CopyOnWriteArrayList中所有元素的字符串,每个元素之间用给定的分隔符隔开。
CopyOnWriteArrayList toString()方法实现原理

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()方法示例

以下是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()方法时,可以通过指定分隔符来控制输出格式。