[英]How to sort an List of object arrays in ascending order
我有一个 hibernate 实体 class:
@Entity
@Table(name = "grade")
@JsonIgnoreType
public class StudentMaster implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "grade_id", unique = true, nullable = false)
private Integer gradeId;
@Column(name = "grade_name")
private String gradeName;
//getter and setter
}
我编写了一个查询,返回 object 数组列表: String query = select T.gradeId, T.gradeName from grade where available = 1;
这将返回 object 数组的列表
List<Object[]> list = session.createQuery(query.toString()).list();
清单来了
[0]
>[0] = 5001
>[1] = "10"
[1]
>[0] = 5002
>[1] = "11"
[2]
>[0] = 5003
>[1] = "4"
[3]
>[0] = 5004
>[1] = "18"
and so on....
我正在尝试按升序对它进行排序,例如 4、10、11、18 我尝试使用下面的代码片段但没有奏效
Collections.sort(list, new Comparator<StudentMaster>() {
public int compare(StudentMaster s1, StudentMaster s2) {
return s1.getGradeName().compareTo(s2.getGradeName());
}
});
有人可以在这里帮助我吗? 我正在学习自己和编码新手,所以需要帮助。 谢谢
我建议让 DB 尽力而为并为您排序。 只需将 order by 添加到您的查询中。
更新:
由于您想通过存储为字符串的 integer 值来订购,因此您需要使用TO_NUMBER
或特定的 SQL 方言语法将其转换为 integer。 内存排序可以这样实现:
new Comparator<Object[]>() {
public int compare(Object[] o1, Object[] o2) {
return Integer.valueOf((String) o1[1]).compareTo(Integer.valueOf((String) o2[1]));
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.