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

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

引入原因:

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

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

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

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

3.重寫compareTo()的規(guī)則:

如果當(dāng)前對象this大于形參對象obj,則返回正整數(shù),如果當(dāng)前對象this小于形參對象obj,則返回負(fù)整數(shù)。如果當(dāng)前對象this等于形參對象obj,則返回零。

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

String類的自然排序?qū)崿F(xiàn)舉例:

@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)); /* 運行結(jié)果: [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商品類的實現(xiàn)代碼:

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 +’}’; } //指明商品比較大小的方式,按照價格從低到高排序,如果出現(xiàn)價格相同的,再按照產(chǎn)品名稱從低到高排序 @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('傳入的數(shù)據(jù)類型不一致'); }}

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

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

2.2重寫compare(Object o1,Object o2)方法,比較o1和o2的大小,如果方法返回正整數(shù),則表示o1大于o2,如果返回0,表示二者相等,如果返回負(fù)整數(shù),表示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('輸入的數(shù)據(jù)類型不一致'); } }); 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() { //指明商品比較大小的方式,按照產(chǎn)品名稱從低到高排序,再按照價格從高到低排序 @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('輸入的數(shù)據(jù)類型不一致'); } }); System.out.println(Arrays.toString(arr)); /* 運行結(jié)果: [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接口實現(xiàn)類的對象在任何位置都可以比較大小。

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩国产高清在线| 91久久视频| 久久精品99国产精品日本| 亚洲69av| 丁香婷婷久久| 婷婷丁香综合| 日本中文字幕一区二区| 国产精品夜夜夜| 国产精品99在线观看| 亚洲视频综合| 日韩黄色av| 成人一区不卡| 国产精品毛片在线| 黑森林国产精品av| 蜜臀va亚洲va欧美va天堂| 青青草国产成人99久久| 国产精品极品在线观看| 久久在线电影| 国产精品亚洲片在线播放| 97在线精品| 日韩精品第一| 欧美 日韩 国产一区二区在线视频| 亚洲综合图色| 激情视频网站在线播放色 | 久久男人天堂| 视频一区视频二区中文字幕| 国产成人免费av一区二区午夜| 亚洲视频国产精品| 亚洲女同中文字幕| 另类专区亚洲| 国产精品乱战久久久| 亚洲一区二区三区无吗| 欧美精选一区二区三区| 国产一区二区三区亚洲综合| 蜜桃视频一区二区三区| 日韩欧美一区二区三区在线观看| 国产麻豆一区| 先锋影音久久久| 特黄毛片在线观看| 国产精品18| 97久久超碰| 亚洲日本国产| 欧美网站在线| 亚洲国产一区二区三区在线播放| 日本久久综合| 国产一区二区三区久久久久久久久| 欧美精品观看| 欧美日韩国产亚洲一区| 新版的欧美在线视频| 色爱综合网欧美| 伊伊综合在线| 国产欧美日韩视频在线 | 国产一区二区视频在线看| 亚洲视频电影在线| 日韩综合一区二区| 欧美午夜三级| 精品精品久久| 激情欧美亚洲| 久久亚洲视频| 69堂免费精品视频在线播放| 国产日产精品_国产精品毛片 | 美女视频网站久久| 美腿丝袜亚洲一区| 国产成人免费视频网站视频社区| 精品三区视频| 亚洲欧美一区在线| 亚洲a级精品| 成人片免费看| 中文字幕一区二区av| 国产精品一区二区三区av麻| 国产精东传媒成人av电影| 黑森林国产精品av| 先锋影音国产一区| 欧美精品aa| 午夜免费一区| 国产精品亚洲欧美| 婷婷综合激情| 国产精品xxxav免费视频| 日韩欧美1区| 亚洲精品第一| 91精品国产乱码久久久久久久| 麻豆精品99| 久久精品国语| 久久av偷拍| 蜜臀国产一区二区三区在线播放| 麻豆91精品| 亚洲黄色中文字幕| 日韩欧美中文字幕一区二区三区| 国产一区二区三区四区五区| 亚洲精品福利| 亚洲特级毛片| 美女性感视频久久| 日韩精品一二三四| 欧美aa在线观看| 国产免费av国片精品草莓男男| 亚洲男女av一区二区| 国内精品美女在线观看| 日韩1区2区日韩1区2区| 欧美日韩一区二区综合| 国产毛片精品| 欧美日韩国产一区二区在线观看| 免费观看不卡av| av中文字幕在线观看第一页 | 欧美国产视频| 日韩不卡一区二区| 久久国产精品久久w女人spa| 欧美va天堂在线| 精品欧美一区二区三区在线观看| 久久精品国产亚洲aⅴ| 日本91福利区| 日韩高清一区在线 | 精品一区二区三区中文字幕在线| 亚洲深深色噜噜狠狠爱网站| 欧美精品一卡| 国产综合视频| 午夜久久久久| 一区在线免费观看| 久久国产精品99国产| 国产精品嫩草99av在线| 婷婷综合在线| 一本综合精品| 人人爱人人干婷婷丁香亚洲| 少妇精品久久久一区二区| 亚洲区国产区| 国产乱人伦丫前精品视频| 国产精品18| 国产精品伦理久久久久久| 久久久久观看| 日韩深夜视频| 亚洲主播在线| 国产欧美日韩免费观看| 久久精品女人| 99久久99久久精品国产片果冰| 国内精品99| 在线亚洲欧美| 日韩精品免费一区二区夜夜嗨| 久久成人亚洲| 国产精品一区二区精品视频观看| 精品国产一级| 亚洲欧美日韩综合国产aⅴ| 日韩精品视频在线看| 精品国产午夜肉伦伦影院| 亚洲成av在线| 亚洲精品黄色| 成人羞羞视频播放网站| 日本不卡高清视频| 国产一区二区三区四区五区传媒 | 精品丝袜久久| 免费国产自线拍一欧美视频| 日韩av一区二区在线影视| 精品日本视频| 中文字幕免费一区二区| 色乱码一区二区三区网站| 亚洲精品美女91| 久久久久中文| 麻豆精品在线视频| 亚洲精品福利| 91久久久精品国产| 黄色在线网站噜噜噜| 国产亚洲精品美女久久| 亚洲国产不卡| 国产盗摄——sm在线视频| 日韩高清国产一区在线| 久久高清精品| 国产精品色婷婷在线观看| 丝袜a∨在线一区二区三区不卡| 国产传媒在线| 欧美成a人片免费观看久久五月天| 久久国产精品毛片| 国产一区亚洲| 韩国精品主播一区二区在线观看| 欧美国产视频| 国产伦精品一区二区三区千人斩| 日本 国产 欧美色综合| 欧美日韩国产探花| 久久在线免费| 偷拍欧美精品| 最新国产拍偷乱拍精品| 日韩毛片在线| 香蕉久久精品| 婷婷色综合网| 视频一区视频二区在线观看| 视频一区中文字幕| 亚洲小说春色综合另类电影| 国产精品女主播一区二区三区| 国产综合婷婷| 91成人精品视频| 亚洲激情另类| 先锋影音国产一区| 日本天堂一区| 成人国产精品久久| 日韩av有码| 亚洲韩日在线| 日韩综合一区二区| 久久精品资源| 精品一区毛片| 亚洲欧美日本国产| 老司机免费视频一区二区| 日韩电影免费网址| 六月天综合网|