最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中ArrayList的兩種排序方法實(shí)例

 更新時(shí)間:2021年07月07日 14:51:46   作者:光羽住一  
ArrayList是一個(gè)數(shù)組隊(duì)列,相當(dāng)于 動(dòng)態(tài)數(shù)組,與Java中的數(shù)組相比,它的容量能動(dòng)態(tài)增長,這篇文章主要給大家介紹了關(guān)于java中ArrayList的兩種排序方法,需要的朋友可以參考下

前言

由于其功能性和靈活性,ArrayList是 Java 集合框架中使用最為普遍的集合類之一。ArrayList 是一種 List 實(shí)現(xiàn),它的內(nèi)部用一個(gè)動(dòng)態(tài)數(shù)組來存儲(chǔ)元素,因此 ArrayList 能夠在添加和移除元素的時(shí)候進(jìn)行動(dòng)態(tài)的擴(kuò)展和縮減。你可能已經(jīng)使用過 ArrayList,因此我將略過基礎(chǔ)部分。如果你對(duì) ArrayList 還不熟悉,你可以參考它的 API 文檔,可以很容易理解在 ArrayList 上執(zhí)行基本的操作。

1.ArrayList使用排序的初衷

我們知道ArrayList的好處是可以不用限定容器的大小,他會(huì)根據(jù)元素的增加自己擴(kuò)大。但是存儲(chǔ)進(jìn)去的數(shù)據(jù)類型都會(huì)變成object,雖然每個(gè)元素有自己的index,但不像數(shù)組的下標(biāo)可以更加方便的操作。那我們平時(shí)學(xué)習(xí)的選擇排序啊快速排序啊都是對(duì)數(shù)組進(jìn)行操作。最開始的笨辦法就是把list中的數(shù)據(jù)傳給數(shù)組排序好了再傳回來嘍。但是這樣效率真的下降的不是幾倍,是幾十倍啊真的不能這樣來。查了點(diǎn)資料和案例在這里總結(jié)一下。

2.對(duì)一個(gè)ArrayList中的數(shù)組進(jìn)行排序。

首先來看下Collection的幫助文檔:

在這里順便補(bǔ)充下ArrayList和Collection的關(guān)系:

具體的使用代碼如下:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class compre {
 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan=new Scanner(System.in);
		int n;
		ArrayList al=new ArrayList();
		System.out.println("請(qǐng)輸入需要的個(gè)數(shù)");
		n=scan.nextInt();
		System.out.println("請(qǐng)逐一輸入");
		for(int i=0;i<n;i++) {
			al.add(i,scan.nextInt());
		}
		System.out.println("你輸入的數(shù)字是:");
		for(int i=0;i<al.size();i++) {
			int temp=(int)al.get(i);
			System.out.print(temp+" ");
		}
		Collections.sort(al);//針對(duì)一個(gè)ArrayList內(nèi)部的數(shù)據(jù)排序
		System.out.println();
		System.out.println("經(jīng)過排序后:");
		for(int i=0;i<al.size();i++) {
			int temp=(int)al.get(i);
			System.out.print(temp+" ");
		}
	}
}

運(yùn)行結(jié)果:

3.多個(gè)ArrayList中的元素進(jìn)行排序

 class SortByName implements Comparator {
         public int compare(Object o1, Object o2) {
          Student s1 = (Student) o1;
          Student s2 = (Student) o2;
          return s1.getName().compareTo(s2.getName());
         }
}
  class SortByAge implements Comparator {
         public int compare(Object o1, Object o2) {
          Student s1 = (Student) o1;
          Student s2 = (Student) o2;
          return s1.getAge().compareTo(s2.getAge());
//          if (s1.getAge() > s2.getAge())
//           return 1;
//          return -1;
         }
        }

總結(jié)

到此這篇關(guān)于java中ArrayList兩種排序的文章就介紹到這了,更多相關(guān)java ArrayList排序方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳細(xì)分析java 動(dòng)態(tài)代理

    詳細(xì)分析java 動(dòng)態(tài)代理

    這篇文章主要介紹了java 動(dòng)態(tài)代理的的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • 還在用if(obj!=null)做非空判斷,帶你快速上手Optional

    還在用if(obj!=null)做非空判斷,帶你快速上手Optional

    這篇文章主要介紹了還在用if(obj!=null)做非空判斷,帶你快速上手Optional,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • socket編程時(shí)的發(fā)送與接收數(shù)據(jù)時(shí)的問題解析

    socket編程時(shí)的發(fā)送與接收數(shù)據(jù)時(shí)的問題解析

    這篇文章主要為大家介紹了socket編程時(shí)的發(fā)送與接收數(shù)據(jù)時(shí)的問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Java源碼深度分析String與StringBuffer及StringBuilder詳解

    Java源碼深度分析String與StringBuffer及StringBuilder詳解

    當(dāng)對(duì)字符串進(jìn)行修改的時(shí)候,需要使用?StringBuffer?和?StringBuilder類,和String類不同的是,StringBuffer和?StringBuilder類的對(duì)象能夠被多次的修改,并且不產(chǎn)生新的未使用對(duì)象,本篇我們來分析分析它們的源碼
    2022-05-05
  • Java可重入鎖的實(shí)現(xiàn)示例

    Java可重入鎖的實(shí)現(xiàn)示例

    在java中,可重入鎖分為兩種,即synchronized鎖以及ReentrantLock及其實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • SpringBoot開發(fā)之整合Mybatis詳解

    SpringBoot開發(fā)之整合Mybatis詳解

    這篇文章主要介紹了SpringBoot開發(fā)之整合Mybatis詳解,MyBatis是一個(gè)半自動(dòng)的ORM框架,它允許我們通過編寫SQL語句來操作數(shù)據(jù)庫,使用MyBatis,我們可以通過定義映射文件(XML文件)或使用注解的方式將Java對(duì)象與數(shù)據(jù)庫表進(jìn)行映射,需要的朋友可以參考下
    2023-09-09
  • 利用Java實(shí)現(xiàn)TXT文件導(dǎo)入功能的示例代碼

    利用Java實(shí)現(xiàn)TXT文件導(dǎo)入功能的示例代碼

    在現(xiàn)代Web應(yīng)用中,文件上傳和處理是一個(gè)常見的需求,本文將介紹如何實(shí)現(xiàn)一個(gè)簡單的TXT文件導(dǎo)入功能,文中的示例代碼簡潔易懂,需要的小伙伴可以了解下
    2025-08-08
  • 新版SpringSecurity5.x使用與配置詳解

    新版SpringSecurity5.x使用與配置詳解

    Spring Security是一個(gè)強(qiáng)大且高度可定制的身份驗(yàn)證和訪問控制框架,本文主要介紹了新版SpringSecurity5.x使用與配置詳解,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • 200行Java代碼如何實(shí)現(xiàn)依賴注入框架詳解

    200行Java代碼如何實(shí)現(xiàn)依賴注入框架詳解

    依賴注入對(duì)大家來說應(yīng)該都不陌生,下面這篇文章主要給大家介紹了關(guān)于利用200行Java代碼如何實(shí)現(xiàn)依賴注入框架的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • Windows安裝Maven并配置環(huán)境的詳細(xì)步驟

    Windows安裝Maven并配置環(huán)境的詳細(xì)步驟

    Maven是一個(gè)非常流行的構(gòu)建和項(xiàng)目管理工具,用于Java開發(fā),它提供了一個(gè)強(qiáng)大的依賴管理系統(tǒng)和一系列標(biāo)準(zhǔn)化的構(gòu)建生命周期,本文將指導(dǎo)您如何在Windows操作系統(tǒng)上安裝和配置Maven,需要的朋友可以參考下
    2023-05-05

最新評(píng)論

平邑县| 安顺市| 城市| 开平市| 凤庆县| 古浪县| 神池县| 嵊州市| 济阳县| 江阴市| 永登县| 平昌县| 赣榆县| 灵武市| 蒲江县| 加查县| 江口县| 长葛市| 拜城县| 米林县| 景德镇市| 广饶县| 攀枝花市| 汾西县| 汤原县| 安仁县| 霍林郭勒市| 陆良县| 密云县| 繁昌县| 荆门市| 阿鲁科尔沁旗| 安乡县| 灵丘县| 天全县| 湟中县| 东兰县| 江西省| 定安县| 屏东市| 拉萨市|