Java 按升序从ArrayList中删除元素
我正在尝试按升序删除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<>
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();
}