Collections.singleton() 方法不能用作文档?

Collections.singleton() methods does not work as documentation?

我已经测试了 Collections.singleton() 方法,如何工作,但我发现它并不像文档中所说的那样工作?

List arraylist= new ArrayList();
arraylist.add("Nguyen");
arraylist.add("Van");
arraylist.add("Jone");
List list = Collections.singletonList(arraylist);// contains three elements
System.out.println(list.size());// right

正如文档所说,该方法调用 returns 一个只包含指定对象的不可变列表,一个单例列表只包含一个元素,一个单例 HashMap 只包含一个键。单例对象是不可变的(无法修改以添加更多元素),但是当我在代码中看到的内容包含三个元素时("Nguyen"、"Van"、"Jone")。

谁能帮我解释一下为什么??非常感谢!!

返回的ListListList。在这种情况下,返回的列表列表本身是不可变的,不是包含的List。此外,返回的列表仅包含 一个 元素,而不是三个:arraylist 变量本身被视为一个元素,并且是 Collections.singletonList 返回的列表中存储的唯一元素.换句话说,语句 Collections.singletonList(arraylist) 不会创建包含所提供列表的所有元素的列表。

如果使用泛型,效果会更明显:

List<String> arraylist= new ArrayList<>();
arraylist.add("Nguyen");
arraylist.add("Van");
arraylist.add("Jone");
List<List<String>> list = Collections.singletonList(arraylist);

文档中所说的是,如果您执行以下操作:

List list = Collections.singletonList(arraylist);
list.add(new ArrayList());

那么这会在运行时抛出异常。