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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數(shù)組不會自動對可比較的對象進行排序

數(shù)組不會自動對可比較的對象進行排序

湖上湖 2022-07-20 20:46:43
我有一個帶有 3 個雙精度值的類框。任務(wù)是對其中一個值進行排序并打印結(jié)果。下面有一段代碼 public class Box implements Comparable<Box> {        private double x;        private double y;        private double z;        private double volume;@Override    public int compareTo(Box o) {        return this.x > o.x ? 1 : this.x < o.x ? -1 : 0;    }    public static void  sorting (Box[] o)    {        System.out.println();        for (int i = 0; i<o.length; i++)        {            System.out.println(o[i].x);        }    }這段代碼沒有錯誤,但也沒有對 x 參數(shù)進行排序。
查看完整描述

3 回答

?
一只萌萌小番薯

TA貢獻1795條經(jīng)驗 獲得超7個贊

Java 中的數(shù)組不會自動排序(一般的集合也不會)。對于您需要調(diào)用的數(shù)組

Arrays.sort(boxes);

如果使用集合,您可以使用

Collections.sort(boxList);

或者使用SortedSet / Map代替(例如TreeSet)。這些類型的集合將在插入時自動對其元素進行排序并保持自然順序。

正如@AndyTurner 所指出的, Sets and Maps 當(dāng)然會丟棄重復(fù)項(取決于您對hashCodeand的實現(xiàn)equals),這可能是您不想要的。

This question and it's very good answer也相關(guān),并提供了對Java中排序集合的一個很好的概述。


查看完整回答
反對 回復(fù) 2022-07-20
?
郎朗坤

TA貢獻1921條經(jīng)驗 獲得超9個贊

僅實現(xiàn)Comparable意味著該類為其實例提供了一些默認順序。并不意味著每個數(shù)組或集合都必須自動應(yīng)用該 order。

例如,String類還實現(xiàn)Comparable了提供字典順序的功能,但您仍然可以決定您的字符串應(yīng)該放在數(shù)組中的哪個位置。這是可能的,因為當(dāng)你這樣做時

array[index] = element;

決定element將放置在哪里取決于index,而不是任何特性element。

要使用其元素的默認順序?qū)?shù)組進行排序,您可以使用Arrays.sort(o);,否則您的數(shù)組o將在索引指定的位置保存元素。


查看完整回答
反對 回復(fù) 2022-07-20
?
炎炎設(shè)計

TA貢獻1808條經(jīng)驗 獲得超4個贊

你實際上有幾個不同的選擇。其中一些正在創(chuàng)建您自己的排序功能,如前所述,或者使用帶有適當(dāng)比較器的集合排序。您可能需要查看此 SO 主題以獲取有關(guān)該主題的更多詳細信息。另外,請記住在發(fā)布之前使用搜索,這是在鍵入“java sort by object field”或類似內(nèi)容后彈出的第一件事。



查看完整回答
反對 回復(fù) 2022-07-20
  • 3 回答
  • 0 關(guān)注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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