日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java比較對象大小兩種常用方法

瀏覽:166日期:2022-08-22 18:46:43

引入原因:

Java中的對象,正常情況下,只能進行比較:== 或!= ,不能使用 < 或 > ,但是在開發時需要用到比較對象的大小

1.Comparable接口的使用(自然排序)

1.像String 、包裝類等實現了Comparable接口,重寫了compareTo()方法,給出了比較兩個對象大小的方法

2.像String 、包裝類等重寫了compareTo()方法后,默認執行了從小到大的排序

3.重寫compareTo()的規則:

如果當前對象this大于形參對象obj,則返回正整數,如果當前對象this小于形參對象obj,則返回負整數。如果當前對象this等于形參對象obj,則返回零。

4.對于自定義類來說,如果需要排序,我們可以讓自定義類實現Comparable接口,重寫compareTo()方法, 在compareTo()方法中指明如何排序

String類的自然排序實現舉例:

@Test public void test1(){ String[] arr=new String[] {'GG','MM','AA','CC','DD','KK'}; Arrays.sort(arr); System.out.println(Arrays.toString(arr)); //[AA, CC, DD, GG, KK, MM] }

自定義類的自然排序舉例: 

@Test public void test2(){ Goods[] arr=new Goods[4]; arr[0] = new Goods('lenovoMouse',34); arr[1] = new Goods('dellMouse',66); arr[2] = new Goods('xiaomiMouse',50); arr[3] = new Goods('hahaMouse',66); Arrays.sort(arr); System.out.println(Arrays.toString(arr)); /* 運行結果: [Goods{name=’lenovoMouse’, price=34.0}, Goods{name=’xiaomiMouse’, price=50.0}, Goods{name=’dellMouse’, price=66.0}, Goods{name=’hahaMouse’, price=66.0}] */ }

Goods商品類的實現代碼:

public class Goods implements Comparable { private String name; private double price; public Goods() { } public Goods(String name, double price) { this.name = name; this.price = price; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } @Override public String toString() { return 'Goods{' +'name=’' + name + ’’’ +', price=' + price +’}’; } //指明商品比較大小的方式,按照價格從低到高排序,如果出現價格相同的,再按照產品名稱從低到高排序 @Override public int compareTo(Object o) { if(o instanceof Goods ){ Goods goods =(Goods)o; if (this.price > goods.price) {return 1; }else if(this.price < goods.price){return -1; }else//return 0;return this.name.compareTo(goods.name); } throw new RuntimeException('傳入的數據類型不一致'); }}

2.Comparator接口的使用 (定制排序)

2.1引入原因:當元素的類型沒有實現java.lang.Comparable借口而又不方便修改代碼,或者實現了java.lang.Comparable接口的排序規則不適合當前的操作可以考慮使用Comparator的對象來實現排序。

2.2重寫compare(Object o1,Object o2)方法,比較o1和o2的大小,如果方法返回正整數,則表示o1大于o2,如果返回0,表示二者相等,如果返回負整數,表示o1小于o2.

舉例一:

@Test public void test1(){ String[] arr=new String[] {'GG','MM','AA','CC','DD','KK'}; Arrays.sort(arr, new Comparator() { //按照字符串從大到小的順序排序 @Override public int compare(Object o1, Object o2) { if(o1 instanceof String && o2 instanceof String ){ String s1=(String)o1; String s2=(String)o2; return -s1.compareTo(s2); } //return 0; throw new RuntimeException('輸入的數據類型不一致'); } }); System.out.println(Arrays.toString(arr)); //[MM, KK, GG, DD, CC, AA] }

舉例二:

@Test public void test2(){ Goods[] arr=new Goods[5]; arr[0] = new Goods('lenovoMouse',34); arr[1] = new Goods('dellMouse',66); arr[2] = new Goods('xiaomiMouse',50); arr[3] = new Goods('hahaMouse',66); arr[4] = new Goods('hahaMouse',166); Arrays.sort(arr, new Comparator() { //指明商品比較大小的方式,按照產品名稱從低到高排序,再按照價格從高到低排序 @Override public int compare(Object o1, Object o2) { if(o1 instanceof Goods && o2 instanceof Goods){ Goods g1=(Goods)o1; Goods g2=(Goods)o2; if(g1.getName().equals(g2.getName())){ return -Double.compare(g1.getPrice(),g2.getPrice()); }else { return g1.getName().compareTo(g2.getName()); } }throw new RuntimeException('輸入的數據類型不一致'); } }); System.out.println(Arrays.toString(arr)); /* 運行結果: [Goods{name=’dellMouse’, price=66.0}, Goods{name=’hahaMouse’, price=166.0}, Goods{name=’hahaMouse’, price=66.0}, Goods{name=’lenovoMouse’, price=34.0}, Goods{name=’xiaomiMouse’, price=50.0}] */ }

2.3Comparable接口與Comparator接口的使用的對比:

Comparable接口的方式一旦指定,保證Comparable接口實現類的對象在任何位置都可以比較大小。

Comparator接口屬于臨時性的比較。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲国产不卡| 色狠狠一区二区三区| 欧美在线91| 青青青国产精品| 国产精品一区免费在线| 青青草国产成人99久久| 999在线观看精品免费不卡网站| 亚洲精品一级二级| 国产专区一区| 日韩制服丝袜av| 喷白浆一区二区| 日本亚洲欧美天堂免费| 国产精品一国产精品| 成人一区而且| 图片区亚洲欧美小说区| 亚洲性视频在线| 国产精品永久| 日韩欧美国产精品综合嫩v| 激情欧美一区| 亚洲最大av| 国产精品久久久久久久免费软件| 国产欧美日韩一级| 日韩不卡一区| 香蕉精品视频在线观看| 免费人成精品欧美精品| 久久精品72免费观看| 久久久久久色 | 青青草国产精品亚洲专区无| 国产精品1区| 亚洲人成在线网站| 亚洲一区欧美激情| 国产精品一区二区三区美女 | 日韩激情一区二区| 卡一卡二国产精品| 久久精品国产久精国产| 亚洲成人va| 婷婷视频一区二区三区| 国际精品欧美精品| 亚洲国产专区| 欧美中文一区| 日韩在线二区| 影音先锋久久精品| 国产一区二区三区探花| 亚洲欧洲一区| 欧美激情在线精品一区二区三区| 亚洲成人av观看| 亚洲人成毛片在线播放女女| 日本一区中文字幕| 国产网站在线| 亚洲精选av| 久草免费在线视频| 亚洲天堂av资源在线观看| 精品无人区麻豆乱码久久久| 国精品一区二区三区| 国产伦理久久久久久妇女| 久久久精品网| 日韩av一级片| 婷婷成人基地| 精品精品久久| 中文字幕中文字幕精品| 精品三级av| 一区二区国产在线观看| 精品国产亚洲一区二区三区大结局 | 少妇精品在线| 一区二区三区四区日本视频| 亚洲天堂av资源在线观看| 国产黄大片在线观看| 亚洲狼人精品一区二区三区| 国产精品日本一区二区不卡视频| 国产三级一区| 亚州精品视频| 国语精品一区| 午夜宅男久久久| 久久激情综合网| 国产一区二区三区天码| а√天堂中文在线资源8| jizzjizz中国精品麻豆| 国产一二在线播放| 久久国产免费| 日韩欧乱色一区二区三区在线| 四虎成人精品一区二区免费网站| 国产日韩欧美一区二区三区| 亚洲精品进入| 久久精品国产99国产精品| 国产亚洲精品v| 国产精品外国| а√天堂8资源在线| 国产一区91| 高潮一区二区| 国产视频一区二| 美国三级日本三级久久99| 欧美视频精品全部免费观看| 天堂а√在线最新版中文在线| 在线午夜精品| 日韩一区自拍| 精品午夜久久| 国产亚洲一区二区三区啪| 亚洲专区一区| 免费视频一区三区| 高清日韩欧美| 蜜臀av性久久久久蜜臀aⅴ流畅 | 精品视频一区二区三区四区五区| 国产欧美日韩免费观看| 国产91在线精品| 免费国产亚洲视频| 欧美aa一级| 国产麻豆精品| 91成人网在线观看| 久久福利在线| 日韩区一区二| 久久精品一区二区不卡| 91精品国产成人观看| 欧美国产极品| 精品亚洲免a| 亚洲精品九九| 热久久久久久久| 日精品一区二区三区| 久久国产欧美日韩精品| 国产精品嫩草99av在线| 91福利精品在线观看| 五月国产精品| 日韩精品中文字幕吗一区二区 | 成人片免费看| 国产一区二区三区探花| 你懂的国产精品永久在线| 日韩二区三区四区| 欧美日韩一区二区三区四区在线观看| 国产精品97| 精品一区毛片| 婷婷丁香综合| 婷婷成人av| 国产日本久久| 亚洲在线观看| 亚洲精品无播放器在线播放| 国产成年精品| 激情综合自拍| 中文字幕系列一区| 激情不卡一区二区三区视频在线| 国产精品亲子伦av一区二区三区| 国产精品久久久久久久久久白浆 | 亚洲精品va| 国产精品一国产精品k频道56| 欧美国产中文高清| 日本美女一区| 蜜桃伊人久久| 免费一级欧美片在线观看网站 | 麻豆一区二区在线| 欧美日韩中文| 国产经典一区| 国产一区二区三区黄网站 | 黄色亚洲大片免费在线观看| 99久久夜色精品国产亚洲1000部| 免费观看不卡av| 午夜在线播放视频欧美| 在线精品国产亚洲| 久久99免费视频| 亚洲97av| 成人日韩在线| 久久激情五月激情| 国产精品日韩久久久| 在线亚洲人成| 日韩一区二区免费看| 日本欧美一区二区| 国产不卡精品| 亚洲精品一级| 91看片一区| 久久99久久人婷婷精品综合| 久久久久久自在自线| 日本精品一区二区三区在线观看视频| 精品捆绑调教一区二区三区 | 日韩国产激情| 国产高清视频一区二区| 亚洲色图国产| 99精品综合| 欧美激情三区| 国产探花一区在线观看| 人人精品久久| 日韩精品视频一区二区三区| 综合一区在线| 国产午夜精品一区二区三区欧美| 国产中文一区| 亚洲日产国产精品| 精品视频一二| 亚洲一区二区免费看| 日韩av黄色在线| 欧美sm一区| 欧美日一区二区三区在线观看国产免 | 欧美黄色精品| 卡一精品卡二卡三网站乱码| 亚洲精品在线二区| 国产综合婷婷| 久久久亚洲欧洲日产| 日韩激情一区| 好看不卡的中文字幕| 97精品国产| 乱一区二区av| 国产精品片aa在线观看 | 一区二区高清| 日韩在线观看不卡| 国产精品nxnn|