3

这些方法返回支持的集合,因为一个集合中的更改会影响另一个集合。[一种直写过程]

headSet(e, b)     Returns a subset ending at element e and exclusive of e

headMap(k, b)     Returns a submap ending at key k and exclusive of key k

tailSet(e, b)     Returns a subset starting at and inclusive of element e

tailMap(k, b)     Returns a submap starting at and inclusive of key k

subSet(s, b, e, b)    Returns a subset starting at element s and ending just before element e

subMap(s, b, e, b)    Returns a submap starting at key s and ending just before key e

那么和Arrays.asList()方法有什么区别呢?该方法将一个数组复制到一个列表中。API 说“将返回列表的更改‘写入’到数组,反之亦然”。

那么,它是否也是一个支持集合?如果是,那么 List 接口中有 toArray() 方法——这也是支持集合吗?

有没有其他方法Arrays.asList()可以允许写入?如何仅通过查看方法签名来确定该方法是否允许写入?

4

1 回答 1

8

是的,Arrays.asList返回一个由数组支持的列表,因为它不复制,而是Collection.toArray复制,所以它不受集合支持。

您无法判断方法是否仅从签名返回由其输入支持的集合 - 仅从文档中返回。通常,它使用“支持者”、“视图”等词来记录。有很多示例——List.subList例如,Collections.newSetFromMap等等——以及第三方库中的无数示例。

于 2012-05-17T13:22:14.593 回答