在 Java 中定义固定大小的列表
2022-08-31 13:57:42
是否可以定义固定大小为 100 的列表?如果不是,为什么这在Java中不可用?
如果内存服务于以下情况,这应该可以做到这一点:
List<MyType> fixed = Arrays.asList(new MyType[100]);
Java列表是对象的集合...列表的元素。列表的大小是该列表中的元素数。如果希望固定该大小,则意味着您无法添加或删除元素,因为添加或删除元素将违反“固定大小”约束。
实现“固定大小”列表的最简单方法是将元素放入数组中,然后创建列表包装器。包装器将允许您执行类似 和 的操作,但 and 操作将引发异常。Arrays.asList(array)
get
set
add
remove
如果你想为现有列表创建一个固定大小的包装器,那么你可以使用Apache commons FixedSizeList
类。但请注意,此包装器无法阻止其他更改原始列表大小的操作,如果发生这种情况,包装列表可能会反映这些更改。
另一方面,如果您真的想要一个对其大小具有固定限制(或限制)的列表类型,则需要创建自己的List类来实现这一点。例如,您可以创建一个包装类,用于在各种 / 和 / / 操作中实现相关检查。(在迭代器方法中,如果它们受支持。add
addAll
remove
removeAll
retainAll
remove
那么,为什么Java Collections框架没有实现这些呢?以下是我这么认为的原因:
Collections.sort