1. 程式人生 > >Java Array和Arrays

Java Array和Arrays


一:Array與Arrays的區別

1.陣列類Array

Java最基本的一個儲存結構

 提供了動態建立和訪問 Java 陣列的方法。其中的元素的型別必須相同。

效率高,但容量固定且無法動態改變。

它無法判斷其中實際存有多少元素,length只是告訴我們array的容量。

2. Arrays工具類

   Arrays 類是 Java 中提供的一個工具類,在 java.util 包中。該類中包含了一

   些方法用來直接運算元組,比如可直接實現陣列的排序、搜尋等。此類還包含

一個允許將陣列作為列表來檢視的靜態工廠。

二:Arrays常用方法

1、sort()

預設由小到大排序,不只對於數值型的可以排序,對於字串等也都可以進行排序
      2

、binarySearch()

對已排序(從小到大排序的)的陣列進行二元搜尋,如果找到指定的值就返回其所在的索引位置,否則返回負值

      3、fill()

將陣列的元素全部設定為指定的值
      4
、equals()

比較兩個陣列元素中的元素值是否全部相等,如果是返回true,否則返回false,適用於一維陣列,多維陣列用deepEquals()用法同equals;
       5、deepEquals()

對多維陣列進行比較其內容是否一致,不能用於一維陣列,會編譯不過滴~
      6
、toString(int[] a)
          返回指定陣列內容的字串表示形式。
      7、copyOf(int[] original, intnewLength)
          複製指定的陣列,擷取或用 0 填充(如有必要),以使副本具有指定的長度。
      8、copyOfRange(int[] original, intfrom, int to)
          將指定陣列的指定範圍複製到一個新陣列。  
      9、asList(array)
                 利用Arrays.asList(array)將返回一個List,然而這個返回的List並不支援add和

          remove的操作。返回的List進行新增或刪除時將會報

         java.lang.UnsupportedOperationException 異常。
       
原因:在Arrays.asList中,該方法接受一個變長引數,一般可看做陣列引數,但是因為基本資料型別,

如int[] 本身就是一個型別,所以data變數作為引數傳遞時,編譯器認為只傳了一個變數,這個變數的

型別是int陣列,所以size為1。        
                因為是arrays.aslist中,看程式碼可以看到這裡返回的ArrayList不是原來的傳統意義上的java.util.arraylist了

,而是自己工具類的一個靜態私有內部類,並沒有提供add方法,要自己實現,所以這裡是出錯了,因此,

除非確信array.aslist後長度不會增加,否則謹慎使用:List abc=Arrays.asList("a","b","c"),

因為這樣的長度是無法再add的了。


相關推薦

Java ArrayArrays

一:Array與Arrays的區別 1.陣列類Array Java中最基本的一個儲存結構。  提供了動態建立和訪問 Java 陣列的方法。其中的元素的型別必須相同。 效率高,但容量固定且無法動態改變。 它無法判斷其中實際存有多少元素,length只是告訴我們array的容量。 2. Arrays工具類  

Java Array大數據運算

++ str1 info div earch img string tro 數組 1、Array類 ?sort方法,用來對指定數組中的元素進行排序(元素值從小到大進行排序) //源arr數組元素{1,5,9,3,7}, 進行排序後arr數組元素為{1,3,5,7,9}

Java-Collections Arrays

集合框架中的工具類:特點:該工具類中的方法都是靜態的。 Collections:常見方法: 1, 對list進行二分查詢:   前提該集合一定要有序。   int binarySearch(list,key);   //必須根據元素自然順序對列表進行升級排序   //要求list 集合中的元素都是

Java陣列Arrays

一維陣列的兩種定義方法 一維陣列的三種遍歷方法 import java.util.Arrays; import java.util.Scanner; public class Main { static int maxn = (int) 1e5 + 10;

Java的陣列list升序,降序,逆序函式Collections.sortArrays.sort的使用

list升序,降序,逆序List<Integer>list =new ArrayList<Integer>();//如果list是 5 7 2 6 8 1 41、升序:Collections.sort(list) //list: 1 2 4 5 6 7 82、降序:Collection

Java氣泡排序(Bubble Sort),ArrayList排序

Java氣泡排序(Bubble Sort) 原理:比較兩個相鄰的元素,將值大的元素交換至右端。 public class BubbleSortArray { public static void main(String[] args) { // in

Java學習筆記之——StringArrays常用方法

一、String常用方法 1.subString(int beginIndex,int endIndex) 擷取字串 從beginIndex開始擷取,擷取endIndex-beginIndex的長度 案列: String str=”helloFriend”; str.subString(4,8);&

java:集合框架(Arrays工具類的asList()方法的使用)-陣列集合互轉

import java.util.ArrayList; import java.util.Arrays; import java.util.List; //陣列轉集合,雖然不能增加或刪除元素,但是可以集

java 中的 Arrays 類的主要方法屬性說明

java 中的 Arrays類的主要方法和屬性說明 Java提供的 Arrays類裡包含的一些static修飾的方法可以直接運算元組,這個 Arrays類裡包含了如下幾個 static修飾的方法( static修飾的方法可以直接通過類名呼叫) 返回值 函

Java中的集合框架-CollectionsArrays

  上一篇《Java中的集合框架-Map》把集合框架中的鍵值對容器Map中常用的知識記錄了一下,本節記錄一下集合框架的兩個工具類Collections和Arrays 一,Collections   Collections類中的方法全部都是靜態的,它可以對Collection和Map進行一些操作,並返回這些

Java中System.arraycopy()Arrays.copyOf()的區別

System.arraycopy() 這是一個由java標準庫提供的方法。用它進行復制陣列比用for迴圈要快的多。 arraycopy()需要的引數有:源陣列,從源陣列中的什麼位置開始複製的偏移量,

為什麼Java裡的Arrays.asList不能用addremove方法?

在平時的開發過程中,我們知道可以將一個Array的物件轉化為List。這樣的操作,我們只要採用Arrays.asList這個方法就行了。筆者前段時間一直用這個方法,有一天,我發現通過Arrays.asList得到的List無法進行add和remove等操作。 下面是一段很簡

Java-雜項:Java數組Array集合List、Set、Map

title load 通用方法 數列 == 特殊 上一個 遍歷集合 list集合 之前一直分不清楚java中的array,list。同時對set,map,list的用法徹底迷糊,直到看到了這篇文章,講解的很清楚。 世間上本來沒有集合,(只有數組參考C語言)但有人想要,所以

JavaArrayArrayList之間的區別

簡單理解 ArrayList是一種可以自動擴充的Array。 Array型別的變數在宣告的同時必須進行例項化(至少得初始化陣列的大小),而ArrayList可以只是先宣告。 Array只能儲存同構的

Java中 System.arraycopy() Arrays.copyOf()方法

index 成員 size obj lis sco 方法測試 新建 -a System.arraycopy() 和 Arrays.copyOf()方法 閱讀源碼的話,我們就會發現 ArrayList 中大量調用了這兩個方法。比如:我們上面講的擴容操作以及add(int in

Java方法之--System.arraycopy方法Arrays.copyOf()

System.arraycopy方法:如果是陣列比較大,那麼使用System.arraycopy會比較有優勢,因為其使用的是記憶體複製,省去了大量的陣列定址訪問等時間 public static native void arraycopy(Object src, int

java陣列常用Arrays方法氣泡排序口訣

陣列基本要素:   識別符號:陣列的名稱,用於區分不同的陣列   陣列元素:向陣列中存放的資料   元素下標:對陣列元素進行編號,從0開始,陣列中的每個元素都可以通過下標來訪問   元素型別:陣列元素的資料型別 陣列長度固定不變,避免越界 使用陣列四步走

java異常異常體系

urn 執行過程 必須 sys ... 值類型 存在 6.2 結果 16.異常 16.1程序執行過程中出現的影響程序正常運行的現象。 16.2異常語法 try{ //代碼塊 }catch(異常類型 e){ }catch(異常類型2 e2){

java PatternMatcher詳解

而且 建議 exc regex 示例 aabb 工廠 sta 數字 結論:Pattern與Matcher一起合作.Matcher類提供了對正則表達式的分組支持,以及對正則表達式的多次匹配支持. 單獨用Pattern只能使用Pattern.matcher(String reg

java FileByte[]數組 相互轉換

rac ring eno print [] director mkdir int num public class Test { public static void main(String[] args){ String filePath