[英]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.