我正在尝试解决问题,但是数组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);
}
答案 0 :(得分:3)
您可以实现自己的从该类扩展的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]
答案 1 :(得分:1)
我不确定你为什么在循环中使用循环,但根据我对你的问题的理解,这将是我的方法。
ArrayList<Integer> intList = new ArrayList<Integer>();
for (int i = 0; i < 15; i++) {
if (intList.size() == 10) {
break;
}
intList.add(i);
System.out.println(intList.get(i));
}
希望这可以为您提供线索,您可以找到解决问题的方法。
关心和快乐的编码。