溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java實(shí)體類中Set怎么按照對(duì)象的某個(gè)字段對(duì)set排序

發(fā)布時(shí)間:2021-08-30 14:55:37 來(lái)源:億速云 閱讀:188 作者:chen 欄目:編程語(yǔ)言

這篇文章主要介紹“Java實(shí)體類中Set怎么按照對(duì)象的某個(gè)字段對(duì)set排序”,在日常操作中,相信很多人在Java實(shí)體類中Set怎么按照對(duì)象的某個(gè)字段對(duì)set排序問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Java實(shí)體類中Set怎么按照對(duì)象的某個(gè)字段對(duì)set排序”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

背景:

User實(shí)體類 有個(gè)屬性是 Set<PositionChange> 職位變更字段

如下:

PositionChange實(shí)體類 有個(gè)屬性是positionStartDate 什么時(shí)候開始任職此職務(wù)的字段

現(xiàn)在有一個(gè)需求,想在查詢出 User這個(gè)對(duì)象的時(shí)候 ,可以獲取到 Set<PositionChange>中 用戶最新任職的一條崗位記錄,也就是展示當(dāng)前用戶所處的崗位信息。

但是,Set始終的無(wú)序的,想要取出Set中PositionChange的positionStartDate時(shí)間最新的一條,并且是在 取出User的時(shí)候 直接就是好的 我直接拿來(lái)用就行了

需求介紹完畢

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

解決途徑: 在User實(shí)體中 新設(shè)置一個(gè)List<PositionChange> 用來(lái)裝將Set按照自己的想法排序之后的結(jié)果

在使用的地方 直接取List里面的值即可。

import java.sql.Timestamp;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashSet;import java.util.List;import java.util.Set;/*** User 用戶*/@Entity@Table(name = "user", catalog = "performance")@JsonIgnoreProperties(value={"workaffs"})public class User implements java.io.Serializable {private Set<Positionchange> positionchanges = new HashSet<Positionchange>(0);//崗位變動(dòng)表private List<Positionchange> positionChanges ;//新設(shè)置的List<>//不讓hibernate認(rèn)為這是數(shù)據(jù)庫(kù)的字段@Transientpublic List<Positionchange> getPositionChanges() {positionChanges = new ArrayList<Positionchange>(positionchanges);Collections.sort(positionChanges, new Comparator<Positionchange>() {@Overridepublic int compare(Positionchange o1, Positionchange o2) {return o1.getPositionStartDate().after(o2.getPositionStartDate()) ? -1 : 1;}});return positionChanges;}public void setPositionChanges(List<Positionchange> positionChanges) {this.positionChanges = positionChanges;}

到此,關(guān)于“Java實(shí)體類中Set怎么按照對(duì)象的某個(gè)字段對(duì)set排序”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI