gpt4 book ai didi

java - 如何将元素添加到 Arraylist 直到我想要限制?

转载 作者:行者123 更新时间:2023-11-29 07:44:25 25 4
gpt4 key购买 nike

我正在尝试解决一个问题,但数组 1000 的限制和给出输入未知数的问题。我只是在 ArrayList 中添加元素直到大小为 1000,然后停止添加元素。我尝试使用以下代码添加元素,但这不是我的编程尝试。

添加元素 0 到 14。如何添加到 10 码?

public static void main(String[] args) {
ArrayList<Integer> str=new ArrayList<Integer>();
int y=str.size();
do
{
for(int i=0; i<15; i++)
str.add(i);
System.out.println(str);
}
while(y!=10);
}

最佳答案

您可以实现自己的 ArrayList 版本,该版本从该类扩展而来,以保存您选择的最大值。

public class MyList<E> extends ArrayList<E> {

private int maxSize; //maximum size of list

@Override
public boolean addAll(int index, Collection<? extends E> c) {
//check if list + the new collection exceeds the limit size
if(this.maxSize >= (this.size()+c.size())) {
return super.addAll(index, c);
} else {
return false;
}
}

@Override
public boolean addAll(Collection<? extends E> c) {
//check if list + the new collection exceeds the limit size
if(this.maxSize >= (this.size()+c.size())) {
return super.addAll(c);
} else {
return false;
}
}

@Override
public void add(int index, E element) {
if(this.maxSize > this.size()) { //check if the list is full
super.add(index, element);
}
}

@Override
public boolean add(E e) {
if(this.maxSize > this.size()) { //check if the list is full
return super.add(e);
} else {
return false; //don't add the element because the list is full.
}
}

public int getMaxSize() {
return maxSize;
}

public void setMaxSize(int maxSize) {
this.maxSize = maxSize;
}

}

然后你可以这样做:

MyList<Integer> test = new MyList<Integer>();
test.setMaxSize(10);
for(int i=0; i<15; i++) {
test.add(i);
}

这会导致这样的结果:

test => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

关于java - 如何将元素添加到 Arraylist 直到我想要限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27180189/

25 4 0
文章推荐: java - ArrayList 发送槽套接字