Java 按升序从ArrayList中删除元素

Java 按升序从ArrayList中删除元素,java,arraylist,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<>

我正在尝试按升序删除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());

    }
}
有什么想法吗?

使用迭代器,您可以从一开始就安全地删除项目

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

要按升序删除元素,您需要始终删除第一个元素,即始终为元素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();
    }

如果升序是从0到大小,步骤1,那么降序是从大小到0,步骤-1。使用迭代器。永远不要做你正在做的事。奇怪的是,我希望B和d能留下来
        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();
    }