java设置大小,java – 设置集合的最大大小的任何方式?

你可以这样做:

List list = Arrays.asList(new X[desiredSize]);

// where X is any Object type (including arrays and enums,

// but excluding primitives)

参考:

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

public static List setMaxSize(

final List input, final int maxSize){

return new ForwardingList(){

@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 delegate(){

return input;

}

};

}

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

显然,如果您的客户端代码使用了装饰的集合,这将只起作用.如果您更改底层集合,那么您将被拧紧(就像Collections.unmodifiableXXX方法一样)

参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值