Java 如何从ArrayList中删除条目

Java 如何从ArrayList中删除条目,java,arraylist,Java,Arraylist,我有一个这样的ArrayList int a=0; int b=0; int c=4; ArrayList<Integer> al=new ArrayList<Integer>(); al.add(a); al.add(b); al.add(c); inta=0; int b=0; int c=4; ArrayList al=新的ArrayList(); al.添加(a); al.添加(b); al.添加(c); 我想删除所有值为0的条目,并将值为4的int c变为

我有一个这样的ArrayList

int a=0;
int b=0;
int c=4;

ArrayList<Integer> al=new ArrayList<Integer>();
al.add(a);
al.add(b);
al.add(c);
inta=0;
int b=0;
int c=4;
ArrayList al=新的ArrayList();
al.添加(a);
al.添加(b);
al.添加(c);
我想删除所有值为
0
的条目,并将值为
4
int c
变为
索引0


我该怎么做呢?

列表
中获取一个
迭代器
,迭代它,如果检索到的值是
0
,则调用它。大概

int a = 0, b = 0, c = 4;
List<Integer> al = new ArrayList<>(Arrays.asList(Integer.valueOf(a), b, c));
Iterator<Integer> iter = al.iterator();
while (iter.hasNext()) {
    if (iter.next() == 0) {
        iter.remove();
    }
}
System.out.println(al);

我想这是家庭作业,所以我不会给出答案。查看Add、Get和Remove方法。这些方法提供了您正在寻找的功能。

这应该可以:

for (int i = 0; i < al.size(); i++) {
  if (al.get(i) == 0) {
    al.remove(i);
    i--;
  }
}
for(int i=0;i
Arraylist有一个名为remove(索引i)的方法
它还有一个名为set的方法(索引i,元素e)

因此,您将为arraylist的大小创建一个循环,检查该值是否为0,以及是否为remove方法
如果要将索引0的值设置为4,请使用set方法,但不要在循环中执行,因为这样会执行多次,这是低效的编程。

Java 8流式方式,可能不适合您(不使用Java 8,教师不寻找这种确切的方式,等等)

al.removeIf(a->a==0)

尝试以下操作:

for(int i=0;i<al.size();i++){
    if(al.get(i)==0){
         al.remove(i);
         i--;
    }
}
for(int i=0;i
for(int i=0;i<al.size();i++){
    if(al.get(i)==0){
         al.remove(i);
         i--;
    }
}
List<Integer> al = new ArrayList<Integer>();
al.add(0);
al.add(0);
al.add(4);
List<Integer> modAl = new ArrayList<Integer>();

Collections.sort(al);

for (int i : al) {
    if (i != 0 ) {
         modAl.add(i);
    }
}
Collections.sort(modAl, Collections.reverseOrder());
al = modAl;
System.out.println(al);
[4]