第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

根據(jù)變量對(duì)自定義 Java 類(lèi)的數(shù)組列表進(jìn)行排序

根據(jù)變量對(duì)自定義 Java 類(lèi)的數(shù)組列表進(jìn)行排序

慕勒3428872 2023-07-28 15:58:14
我有一個(gè)自定義 Java 類(lèi),其中包含兩個(gè)變量:username和score。我正在創(chuàng)建一個(gè) ArrayList,其中包含多個(gè)。然后我想根據(jù)它們的值按從低到高的順序?qū)λ鼈冞M(jìn)行排序score高分班public class Highscore implements ConfigurationSerializable {    String username;    int score;    public Highscore(String username, int score) {        this.username = username;        this.score = score;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public int getScore() {        return score;    }    public void setScore(int score) {        this.score = score;    }    @Override    public Map<String, Object> serialize() {        Map<String, Object> mappedObject = new LinkedHashMap<String, Object>();        mappedObject.put("username", username);        mappedObject.put("score", score);        return mappedObject;    }    public static Highscore deserialize(Map<String, Object> mappedObject) {        return new Highscore((String) mappedObject.get("username"),                (int) mappedObject.get("score"));    }}例如,下面顯示了包含多個(gè) 的 ArrayList Highscore。我只想查看score基于從低到高的 ,然后將Highscore' 排序到另一個(gè) ArrayList 中。ArrayList<Highscore> highscores = new ArrayList<>();highscores.add(new Highscore("user1", 10));highscores.add(new Highscore("user2", 0));highscores.add(new Highscore("user3", -15));highscores.add(new Highscore("user4", 30));highscores.add(new Highscore("user5", 5));// Now, sort the highscores based on their 'score'提前致謝。
查看完整描述

3 回答

?
揚(yáng)帆大魚(yú)

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊

你真的僅限于使用嗎List?

IMOSortedSet更適合您的目標(biāo)。您可以使用TreeSet?注意,TreeSet元素是使用其自然順序或通過(guò)在設(shè)置創(chuàng)建時(shí)間提供的比較器進(jìn)行排序的。此外,它還log(n)為基本操作(添加、刪除和包含)提供了有保證的時(shí)間成本,因此計(jì)算效率非常高。

例如,您可以執(zhí)行以下操作:

SortedSet<Highscore>?highscores?=??
new?TreeSet<>(Comparator.comparingInt(highscore?->?highscore.score));
highscores.add(new?Highscore("user1",?10));
highscores.add(new?Highscore("user2",?0));
highscores.add(new?Highscore("user3",?-15));
highscores.add(new?Highscore("user4",?30));
highscores.add(new?Highscore("user5",?5));

現(xiàn)在highscores包含按升序排序的所有對(duì)象score。

另外,如果您需要從 獲取List,highscores那么只需:

List<Highscore>?highscoreList?=?new?ArrayList<>(highscores);

這種方法的優(yōu)點(diǎn)是:更好的靈活性和效率,因?yàn)?code>SortedSet形成后任何查詢(xún)都會(huì)花費(fèi)您O(log n)O(n)時(shí)間。如果您使用,List您將始終被迫執(zhí)行排序,這將需要O(n log n).


查看完整回答
反對(duì) 回復(fù) 2023-07-28
?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

public class CustomComparator implements Comparator<Highscore> 
{   public int compare(HighScore h1, HighScore h2) {
      return h1.getScore().compareTo(h2.getScore());
   }
}


查看完整回答
反對(duì) 回復(fù) 2023-07-28
?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊

您可以使用比較器,或者讓您的類(lèi)實(shí)現(xiàn)可比較的接口。

查看完整回答
反對(duì) 回復(fù) 2023-07-28
  • 3 回答
  • 0 關(guān)注
  • 208 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)