java中的兩種排序工具Arrays和Collections的使用

2021-01-07 愚公要移山1

java中的排序工具主要是有兩個Arrays和Collections。我們一個一個來講解。

本來寫好了每一種方法的測試代碼,後來又給刪了,因為我覺得如果想要去了解的話,可以直接查看這些常用的即可。因為使用起來真的太簡單。篇幅太長也不好。

一、Arrays

Arrays類位於 java.util 包中,主要包含了操縱數組的各種方法。

1、Array.sort(Object[] array):

對數組按照升序排序

2、Arrays.sort(Object[] array, int from, int to):

對數組元素指定範圍進行排序(排序範圍是從元素下標為from,到下標為to-1的元素進行排序

3、Arrays.fill(Object[] array,Object object):

可以為數組元素填充相同的值

4、Arrays.fill(Object[] array,int from,int to,Object object):

對數組的部分元素填充一個值,從起始位置到結束位置,取頭不取尾

5、Arrays.toString(Object[] array):

返回數組的字符串形式

6、Arrays.deepToString(Object[][] arrays):

返回多維數組的字符串形式。

7、Arrays.binarySearch(Object[] array,element);

在數組array中查找element。並返回下表

二、Collections

Collections是針對集合類的一個幫助類,它提供了一系列靜態方法實現了對各種集合的排序,搜索和線程安全等操作。

1.Shuffle(element):洗牌方法,將當前集合內的數據進行隨機排序。

2.Reverse(element):逆序排序,對當前集合的元素按照相反的順序進行排序

3.Sort(element):對當前集合進行升序排序,實現Comparable接口的類,只能使用一種排序方案,這種方案叫作「自然比較」方案。

4.binarySearch(Collection,Object):查找指定集合中的元素,返回所查找元素的索引

5.max(Collection),max(Collection,Comparator):

前者採用Collection內含自然比較法,後者採用Comparator進行比較

6、indexOfSubList(List list,List subList)

查找subList在list中首次出現位置的索引

7、replaceAll(List list,Object old,Object new):

替換批定元素為某元素,若要替換的值存在剛返回true,反之返回false

8、rotate(List list,int m):

集合中的元素向後移m個位置,在後面被遮蓋的元素循環到前面來

9、copy(List m,List n):

將集合n中的元素全部複製到m中,並且覆蓋相應索引的元素

相關焦點

  • 使用集合工具類Collections對集合進行排序Collections.sort()
    super T>> void sort(List<T> list) 將集合中的元素按默認規則進行排序ArrayList<String> list = new ArrayList<>();list.add("a");
  • 讀 Java Arrays 源碼 筆記
    Arrays.java是Java中用來操作數組的類。使用這個工具類可以減少平常很多的工作量。了解其實現,可以避免一些錯誤的用法。
  • 集合排序的小秘密Collections.sort(**)方法
    讓我們回顧一下上一期介紹的集合排序方法:使用java.util.Collections 集合工具類中的 public static <T extends Comparablesuper T>> void sort(List<T> list) 將集合中的元素按默認規則進行排序如果集合的泛型為一般數據類型(String,Integer等等),那麼直接可以使用sort方法,因為他們已經實現了Comparable接口,如果集合的泛型為自定義類型,那麼如果要對集合實現排序
  • JAVA並發編程:線程並發工具類Callable、Future 和FutureTask的使用
    由於Future 只是一個接口,無法直接用來創建對象使用,因此就有了下面的FutureTask。FutureTask 類實現了RunnableFuture 接口,RunnableFuture 繼承了Runnable接口和Future 接口,而FutureTask 實現了RunnableFuture 接口。
  • java中utils方法 - CSDN
    commons-lang3 是一直在維護的版本,推薦直接使用這個版本。注意:如果你系統已經有 commons-lang,注意如果直接替換成 commons-lang3,將會編譯錯誤。commons-lang3 中相關類與 commons-lang 一樣,但是包名不一樣。
  • Java認證:Java編程中實現中文排序
    Java認證:Java編程中實現中文排序  第一種情況:  Comparator cmp = Collator.getInstance(java.util.Locale.CHINA);  String[] arr = { 「張三」, 「李四」, 「王五」, 「劉六」 };
  • Java面試題:如何對HashMap按鍵值排序
    不同於Array、ArrayList和LinkedLists,它不會維持插入元素的順序。因此,在鍵或值的基礎上排序HashMap是一個很難的面試問題,如果你不知道如何解決的話。下面讓我們看看如何解決這個問題。1. HashMap存儲每對鍵和值作為一個Entry<K,V>對象。
  • 二十九、深入Python中的 collections 模塊
    「@Author:Runsen」collections模塊是一個不用不知道,一用就上癮的模塊。這裡主要介紹OrderedDict類、defaultdict類、Counter類、namedtuple類和deque類。
  • Java開發中使用sort排序
    刷題過程中常常遇到排序問題,Java中自帶的sort方法可以非常方便的幫助我們進行排序。常見的排序問題有兩種情形:1.對一個數組進行排序。2.對自定義類型的類進行排序。一,對數組進行排序:通常情況下我們可以使用Array.sort()來對數組進行排序,有以下3種情況:1.Array.sort(int[] a)直接對數組進行升序排序2.Array.sort(int[]
  • Java核心技術精講PDF掃描版下載
    資料目錄:展開第1部分 java基礎知識第1章 java簡介1.1 java概述1.2 jdk的安裝與配置1.3 第一個java程序:永遠的「hello world!」8.1 stringbuffer類8.2 runtime類8.3 system類8.4 期操作類8.5 隨機數類:random8.6 數學公式類:math8.7 大數字操作類8.8 數組操作類:arrays
  • Arrays.sort() 為什麼可以對 int 等數組進行排序?我跟面試官扯了...
    作者 | TrueDei責編 | 王曉曼出品 | CSDN博客前言排序是在程序開發中最常用到的,最常見的就是針對一些數字進行排序。而現實中像商品的名字,訂單的日期等進行排序。Java的JDK中就自帶了Comparable接口,那麼來看下這個,如何與面試官對答如流。
  • SelectionSort 選擇排序算法詳解(java 實現)
    選擇排序選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與數據移動有關。
  • 「原創」Java並發編程系列06|你不知道的final
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫final在Java中是一個保留的關鍵字,可以修飾變量、方法和類。那麼fianl在並發編程中有什麼作用呢?本文就在對final常見應用總結基礎上,講解final並發編程中的應用。
  • Java元註解作用及使用
    Java 5 定義了 4 個註解,分別是 @Documented、@Target、@Retention 和 @Inherited。Java 8 又增加了 @Repeatable 和 @Native 兩個註解。這些註解都可以在 java.lang.annotation 包中找到。下面主要介紹每個元註解的作用及使用。
  • Java中常見的排序算法有哪些?---冒泡排序
    排序相關的的基本概念排序: 將一組雜亂無章的數據按一定的規律順次排列起來。數據表( data list): 它是待排序數據對象的有限集合。排序碼(key):通常數據對象有多個屬性域,即多個數據成員組成,其中有一個屬性域可用來區分對象,作為排序依據。該域即為排序碼。
  • 跟我學Java編程—操作集合的工具Collections類
    本節介紹的Collections類是一個工具類,用來對集合對象進行操作,提供對List、Map、Set等集合元素的排序、查詢和修改等操作方法。下面通過一個實例程序,通過Collections對List按照升序和降序排序。(1)首先創建一個測試對象,新建一個UserInfoBean類,並實現Comparable接口。
  • 如何在Python 3中使用collections模塊
    介紹Python 3有許多內置的數據結構,包括元組、字典和列表。數據結構為我們提供了一種組織和存儲數據的方法。collections模塊能夠幫助我們高效地填充和操作數據結構。在本教程中,我們將通過collections模塊中的三個類來幫助你處理元組、字典和列表。
  • Java map詳解-用法、遍歷、排序、常用API
    2、☞ 《Java面試手冊》.PDF    點擊查看Map用法類型介紹java 自帶了各種 Map 類,這些 Map 類可歸為三種類型:用於在應用程式中管理映射,通常在 java.util 程序包中實現 HashMap、Hashtable、Properties、LinkedHashMap
  • python進階,詳解collections工具庫!
    defaultdictdefaultdict可以說是這個庫當中使用最簡單的一個,並且它的定義也很簡單,我們從名稱基本上就能看得出來。它解決的是我們使用dict當中最常見的問題,就是key為空的情況。在正常情況下,我們在dict中獲取元素的時候,都需要考慮key為空的情況。如果不考慮這點,那麼當我們獲取了一個不存在的key,會導致系統拋出異常。
  • 同事說會寫Java,不一定會用Collections,你會用嗎?
    前言今天和同事聊天,同事說好多人都說自己是java高級程式設計師,結果問一個 Collections的用法,他沉默了。我說這不能怪他啊,我們是人,我們學習到的知識可能會忘掉,有可能以前知道,過了一段時間就全忘了。所以,今天我們就來聊聊Collections。