成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

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

瀏覽:90日期: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
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美区国产区| 欧美日韩一区二区三区免费| 国产一区中文字幕| 亚洲高清资源| 久久久久久久久蜜桃| 国产精品综合视频| 免费欧美在线| 亚洲天堂2014| 欧美一区二区视频在线| 欧美一区二区人人喊爽| 日韩av中文字幕一区二区三区 | 亚洲成人激情综合网| caoporn国产精品| 欧美四级电影网| 亚洲曰韩产成在线| 一区在线视频观看| 国产免费成人在线视频| 亚洲.国产.中文慕字在线| 国产麻豆精品视频| 亚洲国产精品www| 欧美精品丝袜中出| 亚洲精品中文在线观看| 风间由美一区二区三区在线观看 | 欧美在线观看视频一区二区| 亚洲欧美日韩成人高清在线一区| 欧美在线播放一区| 久久先锋影音av| 不卡欧美aaaaa| 欧美成人一区二区三区片免费 | 欧美mv日韩mv国产网站app| 久88久久88久久久| 老司机免费视频久久| 亚洲成av人影院在线观看网| 国产精品永久入口久久久| 亚洲日穴在线视频| 99国产精品久久久久久久 | 午夜精品久久久久| 久久久久中文| 三级精品在线观看| 91久久精品一区二区三区| 天堂蜜桃91精品| 91久久精品日日躁夜夜躁欧美| 婷婷开心久久网| 欧美资源在线| 亚洲大片在线观看| 亚洲欧美日韩国产| 午夜精品久久久久久久99水蜜桃| 久久婷婷激情| 日本视频在线一区| 欧美私人免费视频| 国产精品一区二区黑丝| 日韩一区和二区| www.亚洲精品| 久久久三级国产网站| 91看片淫黄大片一级在线观看| 久久免费视频一区| 在线观看欧美一区| 亚洲精品老司机| 一区二区三区偷拍| 亚洲成a人片在线不卡一二三区| 久色成人在线| 国产综合久久久久久鬼色 | 成人avav影音| 国产亚洲成年网址在线观看| 欧美精品一区二区三区在线看午夜| 国产精品久久久久aaaa| 亚洲理伦在线| 舔着乳尖日韩一区| 欧美日韩国产色站一区二区三区| 国产高清不卡二三区| 精品国产1区2区3区| 91伊人久久大香线蕉| 欧美国产国产综合| 99在线精品视频在线观看| 午夜精品视频在线观看| 欧美日韩国产综合草草| 成人avav在线| 亚洲精品中文在线观看| 欧洲av一区二区嗯嗯嗯啊| 国产精品1024| 久久精品无码一区二区三区| 亚洲激情黄色| 日韩成人免费电影| 欧美一区二区在线播放| 99精品欧美一区二区三区小说| 国产精品久线在线观看| 亚洲人成精品久久久久久| 每日更新成人在线视频| 精品一区二区免费| 精品成人私密视频| av不卡在线看| 老色鬼精品视频在线观看播放| 日韩免费一区二区| 伊人蜜桃色噜噜激情综合| 亚洲va欧美va国产va天堂影院| 欧美日韩色一区| 色综合久久综合网97色综合| 亚洲人成精品久久久久久| 欧美亚洲愉拍一区二区| a美女胸又www黄视频久久| 18成人在线观看| 色伊人久久综合中文字幕| 国产精品中文欧美| 91麻豆精品国产自产在线| 欧美区一区二| 日韩黄色在线观看| 久久综合狠狠综合久久激情 | 欧美福利一区| 丝袜a∨在线一区二区三区不卡| 欧美一区二区三区喷汁尤物| 国产精品hd| 欧美国产禁国产网站cc| 久久字幕精品一区| 91麻豆福利精品推荐| 亚瑟在线精品视频| 精品国产百合女同互慰| 久久精品女人天堂| 99热这里都是精品| 亚洲成a人片在线不卡一二三区| 欧美大黄免费观看| 中文在线一区| 成人美女视频在线观看18| 亚洲精品免费电影| 欧美成人免费网站| 久久久久久久尹人综合网亚洲| 成人免费视频视频| 亚洲国产精品视频| 久久久综合九色合综国产精品| 乱码第一页成人| 本田岬高潮一区二区三区| 日韩精品乱码av一区二区| 国产视频视频一区| 欧美视频完全免费看| 一区二区在线不卡| 麻豆精品蜜桃视频网站| 欧美性色欧美a在线播放| 亚洲国内在线| 国产xxx精品视频大全| 亚洲香蕉伊在人在线观| 久久久久99精品一区| 在线观看欧美日本| 亚洲夫妻自拍| 99视频精品全部免费在线| 麻豆视频观看网址久久| 国产精品久久夜| 日韩欧美一二区| 色猫猫国产区一区二在线视频| 久久不见久久见免费视频7| 亚洲人精品一区| 欧美大胆人体bbbb| 色偷偷久久人人79超碰人人澡| 亚洲承认在线| www.久久久久久久久| 久久精品国产亚洲a| 五月天一区二区三区| 亚洲人成7777| 欧美国产激情一区二区三区蜜月 | eeuss鲁片一区二区三区在线观看| 日本女人一区二区三区| 亚洲欧美日韩系列| 国产视频一区二区在线观看| 欧美一区二区三区视频在线观看| 色一情一乱一乱一91av| 亚洲一区二区精品在线| 欧美日韩一区二区三区免费| 成人午夜精品一区二区三区| 美美哒免费高清在线观看视频一区二区| 国产精品午夜在线| 日韩视频免费直播| 在线精品视频免费观看| 国产一区白浆| 狠狠色狠狠色综合日日tαg| 粉嫩13p一区二区三区| 日本一区中文字幕| 亚洲一区二区三区四区中文字幕| 久久精品亚洲精品国产欧美kt∨| 欧美日韩在线亚洲一区蜜芽| 国产精品乱码一区二区三区| 国产福利一区在线| 国产一区二区成人久久免费影院| 亚洲狠狠爱一区二区三区| 亚洲欧洲日产国产综合网| 精品国产免费人成在线观看| 欧美在线三级电影| 久久精品日韩| 99视频精品| 亚洲黄色大片| 欧美在线三区| 成人网在线播放| 激情小说欧美图片| 日本女人一区二区三区| 亚洲小少妇裸体bbw| 亚洲欧美乱综合| 国产精品拍天天在线| 欧美va亚洲va| 欧美一激情一区二区三区| 精品污污网站免费看| 色先锋久久av资源部| 国产偷自视频区视频一区二区| 激情视频一区二区三区|