从ArrayList中按升序删除元素

时间:2014-04-21 22:56:59

标签: java arraylist

我正在尝试按升序删除ArrayList中的元素。我把它降级为降序,但无法用其他方式解决。

我试过了:

for (int r = 0; r < s.size(); r++)

但它只显示原始元素和元素减去索引为0的元素。

到目前为止,我有:

public class test {

    public static void main(String[] args) {

        ArrayList <String> s = new ArrayList<> (4); 
        s.add("A");
        s.add("B");
        s.add("C");
        s.add("D");

        //removes elements in descending order 
        for(int r = s.size()-1; r >=0; r--){
            System.out.println(s);
            s.remove(r);        
        } 

        System.out.println(s.size());

    }
}

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

使用Iterator,您可以安全地从头开始删除项目。

for(Iterator<String> i = s.iterator(); i.hasNext();) {
  i.remove();
}

答案 1 :(得分:0)

要按升序删除元素,您需要始终删除 first 元素,该元素始终为元素0

while (s.size() > 0) {
    System.out.println(s);
    s.remove(0);
}

答案 2 :(得分:0)

你可以试试这个

        ArrayList <String> s = new ArrayList<String> (4); 
    s.add("A");
    s.add("B");
    s.add("C");
    s.add("D");

    //reverse the arraylist
    Collections.sort(s ,Collections.reverseOrder());
    Iterator<String> i = s.iterator();

    while(i.hasNext()){
        System.out.println(i.next());
        i.remove();
    }