1. 程式人生 > >個人總結之類 Arrays類的常用方法

個人總結之類 Arrays類的常用方法

此類包含用來運算元組binary Search(比如排序和搜尋)的各種方法。此類還包含一個允許將陣列作為列表來檢視的靜態工廠。

都是靜態方法,直接用類名Arrays呼叫。 

比較常用的有:1.折半查詢法binarySearch2.拷貝陣列copyOf3.指定範圍複製陣列copyOfRange4.比較equals5.填充陣列fill6.排序sort7.轉換為字串toString

1.折半查詢法binarySearch

public static int binarySearch(arr[] a,  key)

使用二分搜尋法來搜尋指定的型別的陣列,以獲得指定的值。必須在進行此呼叫之前對陣列進行排序(通過 sort(arr []) 方法)。如果沒有對陣列進行排序,則結果是不確定的。如果陣列包含多個帶有指定值的元素,則無法保證找到的是哪一個。 

引數:
arrr [] a - 要搜尋的陣列
key - 要搜尋的值 

返回:如果它包含在陣列中,則返回搜尋鍵的索引;否則返回 (-(插入點) - 1)插入點 被定義為將鍵插入陣列的那一點:即第一個大於此鍵的元素索引,如果陣列中的所有元素都小於指定的鍵,則為a.length。注意,這保證了當且僅當此鍵被找到時,返回的值將 >= 0。

ps:必須是有序的陣列,正常情況下返回值為key的索引,不正常情況下返回返回 (-(插入點) - 1)。如果包含多個相同的值,返回的結果是不確定的。

import java.util.Arrays;

public class Test {
	public static void main(String[] args) {
	int [] arr ={1,2,3,4,5,7,8,9};
	int temp=Arrays.binarySearch(arr,6 );
	System.out.println(temp);
	}
}<span style="color:#ff0000;">
</span>
2.拷貝陣列copyOf

public static arr[] copyOf(arr [] original, int newLength)

複製指定的陣列,擷取或用 0 填充(如有必要),以使副本具有指定的長度。對於在原陣列和副本中都有效的所有索引,這兩個陣列將包含相同的值。對於在副本中有效而在原陣列無效的所有索引,副本將包含 0d。當且僅當指定長度大於原陣列的長度時,這些索引存在。 


引數:
original - 要複製的陣列
newLength - 要返回的副本的長度 
返回:
原陣列的副本,擷取或用 0 填充以獲得指定的長度 

ps: newLength是需要複製的長度,小於源陣列時,新陣列是擷取後的陣列,大於源陣列時新陣列是填充0後的陣列。返回值為一個數組

import java.util.Arrays;

public class Test {
	public static void main(String[] args) {
		int[] arr = { 1, 2, 3, 4, 5, 7, 8, 9 };
		int arr1[] = Arrays.copyOf(arr, 10);
		for (int i = 0; i < arr1.length; i++) {
			System.out.println(arr1[i]);
		}
	}
}
3.指定範圍複製陣列copyOfRange
public static arr[] copyOfRange(arr[] original,int from, int to)

將指定陣列的指定範圍複製到一個新陣列。該範圍的初始索引 (from) 必須位於 0 和 original.length(包括)之間。original[from] 處的值放入副本的初始元素中(除非 from == original.length 或 from == to)。原陣列中後續元素的值放入副本的後續元素。該範圍的最後索引 (to)(必須大於等於 from)可以大於 original.length,在這種情況下,0d 被放入索引大於等於 original.length - from 的副本的所有元素中。返回陣列的長度為 to - from。 


引數:
original - 將要從其複製一個範圍的陣列

from - 要複製的範圍的初始索引(包括)
to - 要複製的範圍的最後索引(不包括)。(此索引可能位於陣列範圍之外)。 
返回:
包含取自原陣列指定範圍的新陣列,擷取或用 0 填充以獲得所需長度 
ps:to不能理解為你需要複製的長度,而是你需要複製的最後一位的下標+1,也就是說左閉右開。

<pre name="code" class="java">import java.util.Arrays;

public class Test {
	public static void main(String[] args) {
		int[] arr = { 1, 2, 3, 4, 5, 7, 8, 9 };
		int arr1[] = Arrays.copyOfRange(arr, 0, 1);
		for (int i = 0; i < arr1.length; i++) {
			System.out.println(arr1[i]);
		}
	}
}

4.比較equals
public static boolean equals(arr[] a,arr[] a2)如果兩個指定的 型別的陣列彼此相等,則返回 true。如果兩個陣列包含相同數量的元素,並且兩個陣列中的所有相應元素對都是相等的,則認為這兩個陣列是相等的。換句話說,如果兩個陣列以相同順序包含相同的元素,則兩個陣列是相等的。此外,如果兩個陣列引用都為 null,則認為它們是相等的。

引數:
a - 將測試其相等性的一個數組
a2 - 將測試其相等性的另一個數組 
返回:
如果兩個陣列相等,則返回 true
ps:返回值型別是boolean型別,必須要值與下標均相同或者應用均為null才會返回true,否則返回false.

import java.util.Arrays;
public class Test {
	public static void main(String[] args) {
		int[] arr = { 1, 2, 3, 4, 5, 7, 8, 9 };
		int [] arr2 = {1,2,3,4,5,7,8,9};
		System.out.println(Arrays.equals(arr, arr2));
	}
}

5.填充陣列fill
public static void fill(arr[] a,int fromIndex,int toIndex,char val)將指定的 值分配給指定型別型陣列指定範圍中的每個元素。填充的範圍從索引 fromIndex(包括)一直到索引 toIndex(不包括)。(如果 fromIndex==toIndex,則填充範圍為空。) 

引數:
a - 要填充的陣列
fromIndex - 要使用指定值填充的第一個元素的索引(包括)
toIndex - 要使用指定值填充的最後一個元素的索引(不包括)
val - 要儲存在陣列所有元素中的值 
ps:返回值是void
import java.util.Arrays;
public class Test {
	public static void main(String[] args) {
		int [] arr =new int [5];
		Arrays.fill(arr, 0, 1, 99);
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
}

6.排序sort
public static void sort(arr[] a,int fromIndex, int toIndex)對指定 byte 型陣列的指定範圍按數字升序進行排序。排序的範圍從索引 fromIndex(包括)一直到索引 toIndex(不包括)。(如果 fromIndex==toIndex,則排序範圍為空。)
該排序演算法是一個經過調優的快速排序法,改編自 Jon L. Bentley 和 M. Douglas McIlroy 合著的 Engineering a Sort Function", Software-Practice and Experience Vol. 23(11) P. 1249-1265 (November 1993)。此演算法在許多資料集上提供 n*log(n) 效能,這導致其他快速排序會降低二次型效能。 

引數:
a - 要排序的陣列
fromIndex - 要排序的第一個元素的索引(包括)
toIndex - 要排序的最後一個元素的索引(不包括)
ps:僅有升序排列,倒序需要自己做調整,左閉右開,所有元素排序,不填引數即可!</span>
import java.util.Arrays;
public class Test {
	public static void main(String[] args) {
		int arr [] ={1,2,4,8,2,4,6,9,1,2,7};
		Arrays.sort(arr, 0, arr.length);
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+" ");
		}
	}
}


7.轉換為字串toString
public static String toString(arr[] a)返回指定陣列內容的字串表示形式。字串表示形式由陣列的元素列表組成,括在方括號("[]")中。相鄰元素用字元 ", "(逗號加空格)分隔。這些元素通過 String.valueOf(boolean) 轉換為字串。如果 a 為 null,則返回 "null"。 

引數:
a - 返回其字串表示形式的陣列 
返回:
a 的字串表示形式
ps:返回值為字串。如果a為null,則返回null;表現形式與自己定義的略有不同, 例子[1,2,3,4,5,6],如果陣列中有null,轉變成字串也是null。
import java.util.Arrays;

public class Test {
	public static void main(String[] args) {
		String arr [] ={"12","23",null,"24",null};
		String b = "5252637";
		String a =Arrays.toString(arr);
		System.out.println(a);
		}
	}


相關推薦

個人總結之類 Arrays常用方法

此類包含用來運算元組binary Search(比如排序和搜尋)的各種方法。此類還包含一個允許將陣列作為列表來檢視的靜態工廠。 都是靜態方法,直接用類名Arrays呼叫。  比較常用的有:1.折半查詢法binarySearch2.拷貝陣列copyOf3.指定範圍複製陣列co

Java中陣列操作 java.util.Arrays 常用方法的使用

任何一門程式語言,陣列都是最重要和常用的資料結構之一,但不同的語言對陣列的構造與處理是不盡相同的。 Java中提供了java.util.Arrays 類能方便地運算元組,並且它提供的所有方法都是靜態的。下面介紹一下Arrays類最常用的幾個方法。 1.  陣列排序 Arrays工具類提供了一個sor

Java實用方法整理(十七)——File常用方法總結

一,建立功能 1,public boolean createNewFile() throws IOException     建立新檔案 2,public boolean mkdirs()    建立新的目錄,若父目錄不存在,會自動建立 3,public boolean

String常用方法總結

連結:https://www.cnblogs.com/ABook/p/5527341.html https://blog.csdn.net/tomcmd/article/details/54881857

Java陣列工具Arrays-18-常用方法介紹

       前面我們學習了冒泡和選擇排序以及二分查詢,還有陣列如何轉換成字串,其實接下來學習的這個Arrays類都提供瞭解決這些問題的方法。Arrays類是一個數組工具類,就像String類是處理字串

AJPFX關於Java Object常用方法總結

擁有 常用方法 false getclass sym ret sys eat equal java.lang.Object   java.lang包在使用的時候無需顯示導入,編譯時由編譯器自動導入。  Object類是類層次結構的根,Java中所有的類從根

C#中的Dictionary字典常用方法介紹

remove span one style pre 獲取 all str 常用方法 1 using System.Collections.Generic;//引用命名空間//Dictionary可以理解為散列集合 2 public class DictionaryTe

StringUtils工具常用方法

toe 去掉 substring spl dddd stripe 去除 ins size 前言:工作中看到項目組裏的大牛寫代碼大量的用到了StringUtils工具類來做字符串的操作,便學習整理了一下,方便查閱。 isEmpty(String str) 是否為空,空格字符

java中String常用方法、屬性等

col clas equal ack length ++ ava eal rgs package Head18; public class java09 { public static void main(String[] args) { St

Java File常用方法及實例

獲取 而且 exist exc file類 註釋 sys 遞歸遍歷 cep 創建:createNewFile()在指定位置創建一個空文件,成功就返回true,如果已存在就不創建,然後返回false。mkdir() 在指定位置創建一個單級文件夾。mkdirs() 在指定位

StringUtils工具常用方法匯總2(截取、去除空白、包含、查詢索引)

-m star any 幫助 code emp 位置 abcd space ??在上一篇中總結了StringUtils工具類在判斷字符串為空,大小寫轉換,移除字符或字符序列,替換,反轉,切割合並等方面的方法,這次再匯總一下其它常用的方法。 一、截取 ??StringUtil

java基礎-Integer常用方法介紹

-i java基礎 font ger 版權 spa 責任 創作 bsp                   java基礎-Integer類常用方法介紹                                   作者:尹正傑 版權聲明:原創作品,謝絕轉載!否則將追究

枚舉常用方法學習

rgs 學習 arr 枚舉類 print .class stat 枚舉 n) /** * int ordinal() * int compareTo(E o) * String name() * String toString()

Java 集合常用方法

cti unknown nag ace 方法區 中比 thread arr 使用 Collection中的contains()方法和remove()方法。 boolean contains(Object o);該方法是用來判斷集合中是否包含某個元素,若包含,返回true,不

Java Map常用方法

apple jdb 映射關系 所有 user while 字符串 關系 lan 關於Map集合中常用的方法: void clear(); 清空Map boolean containsKey(Object key); 判斷Map中是否包含這樣的key boolean cont

Java面向對象-- String 常用方法及基本使用

for str news http clas substr 實例 div print 首先來學習基本使用Jdk api chm文檔: 點擊 左上角-顯示: 1, char chartAt(int index) 返回指定索引處的char值 這裏的index 是從0

FileUtils工具常用方法

檔案操作工具類(FileUtils) 使用 apache 的commons-io包下的FileUtils,import org.apache.commons.io.FileUtils; 下載地址:http://commons.apache.org/proper/commons-io/down

Paint 和 Canvas 常用方法說明

自定義控制元件是 Android 開發很吸引人的一部分,各種私人定製的效果和各種炫酷的效果都需要通過自定義控制元件來實現,而在自定義控制元件中,最常用的兩個類也就是 Paint (畫筆)類和 Canvas (畫布)類了,所以在這裡記錄一下它們的常用方法,對實現自定義控制元件也會有一定幫助。

QT---之QStringList常用方法

從QList <QString>繼承而來,它提供快速索引為基礎的接入以及快速插入和清除 其成員函式用於操作這個字串列表如 append(),insert(), replace(), removeAll(), removeAt(), removeFirst(), removeLast(),

Java面向物件-- String 常用方法及基本使用

首先來學習基本使用Jdk api chm文件: 點選 左上角-顯示:     1, char chartAt(int index) 返回指定索引處的char值 這裡的index 是從0開始的; package com.xuyigang1234.chp02.strin