[英]Manually sorting an ArrayList of strings alphabetically in Java
I am trying to reorder an ArrayList alphabetically for an assignment. 我试图按字母顺序重新排序ArrayList以进行赋值。 I am not allowed to use any methods for automatically sorting, it has to be done manually. 我不允许使用任何方法进行自动排序,必须手动完成。 This is the code I tried, but it does not even run. 这是我尝试过的代码,但它甚至都没有运行。 I appreciate any input on this. 我很感激对此的任何意见。
import java.util.ArrayList;
public class SortArrayList {
public static void main(String[] args) {
ArrayList<String> values = new ArrayList<String>();
public static void main(String[] args) {
ArrayList<String> values = new ArrayList<String>();
values.add("car");
values.add("bear");
values.add("apple");
values.add("xray");
sort(values);
for (int i = 0; i < values.size(); i++)
System.out.println(values.get(i));
}
public static void sort(ArrayList<String> x) {
String temp;
for (int i = 0; i < x.size() - 1; i++) {
for (int j = i + 1; j < x.size(); j++) {
if (x.get(i).compareToIgnoreCase(x.get(j)) > 0) {
temp = x.get(i);
x.add(i,x.get(j));
x.add(j,temp);
}
}
}
}
}
The lines 线条
x.add(i,x.get(j));
x.add(j,temp);
are adding more elements to the ArrayList. 正在向ArrayList添加更多元素。 You should change them to 你应该把它们改成
x.set(i, x.get(j));
x.set(j, temp);
so that it replaces the elements at those positions. 这样它就取代了那些位置的元素。
除非对你的问题复制它时多次调用public static void main(String [] args)是一个拼写错误,否则这会导致运行程序时出现问题,因为它不知道从哪里开始
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.