gpt4 book ai didi

java - 有什么方法可以设置集合的最大大小?

转载 作者:IT老高 更新时间:2023-10-28 20:46:00 25 4
gpt4 key购买 nike

有没有办法在 Java 中设置集合的最大大小?

最佳答案

你可以这样做:

List<X> list = Arrays.asList(new X[desiredSize]);
// where X is any Object type (including arrays and enums,
// but excluding primitives)

结果列表是可修改的,但不能调整大小(即 add(e)remove(e) 不起作用,但 set(index, e) 起作用)。

引用:


或者:使用 Guava , 这是一个静态方法,用最大尺寸装饰现有列表

public static <T> List<T> setMaxSize(
final List<T> input, final int maxSize){

return new ForwardingList<T>(){

@Override
public boolean addAll(Collection<? extends T> collection){
return standardAddAll(collection);
}

@Override
public boolean addAll(int index, Collection<? extends T> elements){
return standardAddAll(index, elements);
}

public boolean add(T e) {
checkMaxSize();
return delegate().add(e);
}

@Override
public void add(final int index, final T e){
checkMaxSize();
delegate().add(index, e);
}

private void checkMaxSize(){
if(size() >= maxSize){
throw new UnsupportedOperationException("Maximum Size "
+ maxSize + " reached");
}
}

@Override
protected List<T> delegate(){
return input;
}
};
}

由于所有标准集合类型都存在 ForwardingXxx 类,因此您也可以为其他集合编写类似的装饰器。

显然,这仅在您的客户端代码使用修饰的集合时才有效。如果您更改基础集合,您将被搞砸(就像 Collections.unmodifiableXXX 方法一样)

引用:

关于java - 有什么方法可以设置集合的最大大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5196113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com