给定两个列表:一个带有名称,另一个带有值。第一个列表的每个元素都与第二个列表的一个元素相关联。有必要按字母升序和降序对第一个列表中的名称进行排序,并使用第二个列表中的相应值打印它们。
我已经这样做了,但它没有按字母顺序排序。
import java.util.ArrayList;
import java.util.HashSet;
public class Logic {
public static void studList() {
ArrayList<String> stud = new ArrayList<>();
ArrayList<Double> uspe = new ArrayList<>();
stud.add("Peter");
stud.add("Sophia");
stud.add("Jacob");
stud.add("Matt");
stud.add("Hannah");
uspe.add(4.5);
uspe.add(6.3);
uspe.add(3.8);
uspe.add(5.5);
uspe.add(4.7);
ArrayList<String> list = sortA(stud,uspe);
for (String s:list) {
View.printer(s);
}
View.printer("-");
for (int i = list.size()-1; i >= 0; i--) {
String s = list.get(i);
View.printer(s);
}
}
private static ArrayList<String> sortA(ArrayList<String> st, ArrayList<Double> us) {
ArrayList<String> list = new ArrayList<>();
String s;
for (int i = 0; i < st.size(); i++) {
s = st.get(i) + ": " + us.get(i);
list.add(s);
}
HashSet<String> set = new HashSet<>(list);
list.clear();
list.addAll(set);
return list;
}
}
用途
既然我看到了,我建议您使用两种数据创建一个对象,因为一个与另一个相关
您创建一个对象列表
例如按名称订购
接着
您可以使用气泡法,这是最简单的排序方法。
可以使用java.util.Collections的sort()方法对Java ArrayList进行排序。
如果ArrayList包含文字 (Strings, int, char, ...) 并且您想按升序排序,只需执行以下操作:
例子:
其输出是: