欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Java常用工具類—集合排序

一、集合排序概述

成都創(chuàng)新互聯(lián)專注于定遠企業(yè)網(wǎng)站建設,響應式網(wǎng)站設計,商城網(wǎng)站制作。定遠網(wǎng)站建設公司,為定遠等地區(qū)提供建站服務。全流程定制網(wǎng)站制作,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務

1、主要內(nèi)容

  1. 集合中的基本數(shù)據(jù)類型排序
  2. 集合中的字符串排序
  3. Comparator接口
  4. Comparable接口

回顧:

//數(shù)組的排序
int[] arr= {2,3,4,5,2,1};
Arrays.sort(arr);

2、集合排序方法

  1. 使用Collections類的sort(List list)方法
  2. sort(List list)是根據(jù)元素的自然順序?qū)χ付斜戆瓷蜻M行排序。

二、對基本數(shù)據(jù)類型和字符串類型進行排序

1、對基本數(shù)據(jù)類型排序

List中只能存放對象,要想存放基本數(shù)據(jù)類型的話,泛型中只能寫其對應的包裝類。

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class IntSort {

	public static void main(String[] args) {
		//對存儲在List中的整形數(shù)據(jù)進行排序
		List<Integer> list = new ArrayList<Integer>();
		list.add(5);
		list.add(9);
		list.add(3);
		list.add(1);
		System.out.println("排序前:");
		for (int n: list) {
			System.out.print(n + " ");
		}
		System.out.println();
		//對List中的數(shù)據(jù)進行排序
		Collections.sort(list);
		System.out.println("排序后:");
		for (int n: list) {
			System.out.print(n + " ");
		}
	}
	
}

2、對字符串排序

集合中字符串的排序后其實是按字符順序,ASCII值順序進行排序的

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class StringSort {

	public static void main(String[] args) {
		//對存放在List中的字符串進行排序。
		List<String> list = new ArrayList<String>();
		list.add("orange");
		list.add("blue");
		list.add("yellow");
		list.add("gray");
		System.out.println("排序前: ");
		for (String str: list) {
			System.out.print(str + " ");
		}
		System.out.println();
		//對List中的數(shù)據(jù)進行排序
		Collections.sort(list);
		System.out.println("排序后: ");
		for (String str: list) {
			System.out.print(str + " ");
		}
		//排序后其實是按字母順序
	}

}

三、Comparator接口

1、問題場景:

自定義的類如何排序?

2、解決方法:

使用Comparable或Comparator接口

3、Comparator接口介紹

  1. 強行對某個對象進行整體排序的比較函數(shù)
  2. 可以將Comparator傳遞給sort方法(如Collections.sort或 Arrays.sort)
  3. 包含方法int compare(T o1, T o2) 比較用來排序的兩個參數(shù)  –如果o1<o2,返回負整數(shù)   –如果o1==o2,返回0  –如果o1>o2,返回正整數(shù)
  4. 包含方法boolean equals(Object obj)指示某個其他對象是否“等于”此Comparator。此方法可以被Object類中的equals方法覆蓋,不必重寫,也就是說,我們在Comparator接口中只需要重寫compare這個方法。

4、對寵物貓進行排序

對自定義的類按照一定的規(guī)則進行排序:
(1)對寵物貓按名字進行排序
String類型具有compareTo()方法

例:

int n = name1.conpareTo(name2);

如果name1<name2時,那么n是負整數(shù),相等則為0,否則為正整數(shù)。
name1與name2位置調(diào)換下,則會實現(xiàn)倒序的排序。

import java.util.Comparator;
//按名字進行升序排序的比較器
public class NameComparator implements Comparator<Cat> {

	@Override
	public int compare(Cat o1, Cat o2) {
		//按名字升序排序
		String name1 = o1.getName();
		String name2 = o2.getName();
		int n = name1.compareTo(name2);
		return n;
	}
	
}

語法格式:

Collections.sort(catList, new NameComparator());

(2)對寵物貓按年齡降序排序

  1. 調(diào)用compare方法大于0,就把前一個數(shù)和后一個數(shù)交換,也就是把大的數(shù)放后面了,即所謂的升序了。如果第二個參數(shù)與第一個參數(shù)調(diào)換順序,也就是降序了。
  2. 按int類型比較,直接返回減法后的差值。
import java.util.Comparator;
//按年齡進行降序排序的比較器
public class AgeComparator implements Comparator<Cat> {

	@Override
	public int compare(Cat o1, Cat o2) {
		int age1 = o1.getMonth();
		int age2 = o2.getMonth();
		return age2 - age1;
	}

}

 語法格式:

Collections.sort(catList, new AgeComparator());

四、Comparable接口

1、Comparable概述

  1. Comparable接口位于Java.lang包下面
  2. 此接口強行對實現(xiàn)他的每個類的對象進行整體排序
  3. 這種排序被稱為類的自然排序,類的compareTo方法被稱為它的自然比較方法
  4. 對于集合,通過調(diào)用Collection.sort方法進行排序
  5. 對于數(shù)組,通過調(diào)用Arrays.sort方法進行排序
  6. int compareTo(T o)方法:該對象小于,等于或大于指定對象,則分別返回負整數(shù),0,或正整數(shù)

2、對商品價格進行降序排序案例

(1)操作步驟

  1. 對待排序的類進行接口實現(xiàn)
  2. 重寫compareTo方法
  3. 直接調(diào)用Collections.sort()方法。

(2)代碼實現(xiàn)
①商品類的定義

public class Goods implements Comparable<Goods> { //實現(xiàn)Comparable接口,利用泛型限定比較的類型
	private String id; //商品編號
	private String name; //商品名稱
	private double price; //商品價格
	//構(gòu)造方法
	public Goods() {
		
	}
	public Goods(String id, String name, double price) {
		this.setId(id);
		this.setName(name);
		this.setPrice(price);
	}
	
	//getter和setter方法
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	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 "商品編號:" + id + ",商品名稱:" + name + ",商品價格:" + price;
	}

	@Override
	public int compareTo(Goods o) {  //重寫compareTo方法。
		//取出商品價格
		double price1 = this.getPrice();
		double price2 = o.getPrice();
		int n = new Double(price2 - price1).intValue();  //double類型的差值轉(zhuǎn)為int
		return n;
	}

②排序步驟

Collections.sort(goodsList);

五、集合排序總結(jié)

Comparator和Comparable接口的區(qū)別

1、Comparator:

①位于java.util包
②在要比較的類的外部實現(xiàn)該接口
③調(diào)用sort方法時,要指定Comparator的實現(xiàn)類
使用順序:

  1. 實現(xiàn)要排序的接口
  2. 實現(xiàn)comparator接口
  3. 測試

2、Comparable

①位于java.lang包
②在要比較的類上實現(xiàn)該接口
③調(diào)用sort方法時,只需指定集合名即可
使用順序:

定義要比較的類,并實現(xiàn)comparable接口
測試

Java常用工具類—集合排序

以上所述是小編給大家介紹的Java集合排序詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!

新聞名稱:Java常用工具類—集合排序
路徑分享:http://aaarwkj.com/article24/pdidce.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、虛擬主機、微信小程序、網(wǎng)頁設計公司、ChatGPT、手機網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設計公司
日本av免费观看一区二区| 国产精品99久久久久久人| 亚洲av乱码乱码精品| 91亚洲熟妇国产熟妇肥婆| 亚洲精品自拍一二三四区| 中文字幕人妻出轨一区二区| 日韩av一区二区国产| av丰满人妻一区二区| 国产精品久久久久精品日日三级| 欧美另类不卡在线观看| 午夜18禁毛片免费看| 人妖一区二区三区在线观看| 不卡的av中文字幕在线播放| 欧美国产日韩一区在线观看| 一区二区不卡中文av| 免费午夜福利在线观看| 熟妇人妻精品视频一区二区| 亚洲国产av福利久久| 国产三级全黄在线播放| av中文资源在线观看| 一区二区三区毛片在线看| 激情毛片av在线免费看| 国产一区欧美二区日韩三区| 日本一区中文字幕怎么用| 中文字幕日本乱码精品久久| 欧美大片免费在线播放| 日韩视频在线一区二区三区| 妞妞婷婷基地五月天| 亚洲日本韩国三级一区| 国产日产精品久久婷婷色| 国产精品亚洲av性色| 精品在线中文字幕不卡| 国产av手机自拍看片| 成年免费大片黄在线观看| 国产夫妻一区二区三区| 国产又大又爽免费视频| 国产熟女av一区二区| 亚洲熟女熟妇另类中文| 久久国产欧美日韩精品| 国产中文字幕自拍视频| 日韩一级不卡高清视频|