【发布时间】:2018-04-23 11:18:58
【问题描述】:
我正在努力对字符串的 ArrayList 进行选择排序以按字母顺序排列它们。我不知道我做错了什么。但它只是不适合我。这是我的代码。
ArrayList<String> list = new ArrayList<String>();
list.add("a");
list.add("d");
list.add("f");
list.add("c");
System.out.println(list);
int i;
int j;
int minValue;
int minIndex;
for (i=0; i<list.size(); i++) {
System.out.println(list.get(i));
char iLetter = (list.get(i).charAt(0));
int iValue = (int) iLetter;
minValue = iValue;
minIndex = i;
for(j=i; j<list.size(); j++) {
char jLetter = list.get(j).charAt(0);
int jValue = (int) jLetter;
if (jValue < minValue) {
minValue = jValue;
minIndex = j;
}
}
if(minValue < iValue) {
int temp = iValue;
char idx = list.get(minIndex).charAt(0);
int idxValue = (int) idx;
iValue = idxValue;
idxValue = temp;
}
}
System.out.println(list);
}
它仍然将其打印为 ["a", "d", "f", "c"]
【问题讨论】:
-
你在哪里交换元素在列表中的位置?
-
你想做什么?在您的整个“排序”算法中,您根本不会更改列表,而只是复制一堆原始值。总的来说,无论你在做什么,当你可以调用
Collections.sort(list)并完成它时,尝试对一个简单的字符串列表进行排序都是一种很棒的方式 -
你需要交换元素
-
列表是否总是包含单字符字符串?
-
如何调换职位?
标签: java arraylist selection-sort