【发布时间】:2022-01-04 17:24:19
【问题描述】:
我正在尝试对存储在 List 中的对象的字段值进行排序。
我找到了以下比较字符串的解决方案,但是我如何比较字符串值并进行相应的排序?
我希望先对“Y”状态值进行排序,然后再对“N”进行排序
class Student {
int rollno;
String name, status;
// Constructor
public Student(int rollno, String name,
String status) {
this.rollno = rollno;
this.name = name;
this.status = status;
}
public String getStatus() {
return status;
}
}
ArrayList < Student > ar = new ArrayList < Student > ();
ar.add(new Student(111, "bbbb", "Y"));
ar.add(new Student(131, "aaaa", "N"));
ar.add(new Student(121, "cccc", "Y"));
Collections.sort(ar, (a, b) - > a.getStatus().compareTo(b.getStatus()));
【问题讨论】:
-
请edit 发帖并修正语法错误。 --- 我建议为
status使用适当的对象或枚举,而不是String。 -
您的问题缺少一些信息。当字符串既不是“Y”也不是“N”时,预期的行为是什么?我将
status转换为枚举并实现该枚举的比较会更简单。 -
你好。我试图澄清一下这个问题的标题。如果您不同意我的编辑,请随时
rolback它(edit revision 中有一个选项 - 在我编辑之前选择版本并使用其rolback选项)。
标签: java sorting collections