1. 程式人生 > >Java中Array和ArrayList之間的區別

Java中Array和ArrayList之間的區別

  1. 簡單理解
    ArrayList是一種可以自動擴充的Array。
  2. Array型別的變數在宣告的同時必須進行例項化(至少得初始化陣列的大小),而ArrayList可以只是先宣告。
  3. Array只能儲存同構的物件,而ArrayList可以儲存異構的物件。
    如:宣告為int[]的陣列就只能存放整形資料,string[]只能存放字元型資料,但宣告為object[]的陣列除外。而ArrayList可以存放任何不同型別的資料,因為它裡面存放的都是被裝箱了的Object型物件,實際上ArrayList內部就是使用”object[] _items;”這樣一個私有欄位來封裝物件的。
  4. Array是始終是連續存放的,而ArrayList的存放不一定連續
  5. Array物件的初始化必須只定指定大小,且建立後的陣列大小是固定的,
    而ArrayList的大小可以動態指定,其大小可以在初始化時指定,也可以不指定,也就是說該物件的空間可以任意增加。
  6. Array不能夠隨意新增和刪除其中的項,而ArrayList可以在任意位置插入和刪除項。

相關推薦

JavaArrayArrayList之間區別

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

JAVA ListArrayList區別

屬性和方法 vector 實現類 多個 一個 什麽 性能 {} 等等 List是一個接口,而ListArray是一個類。 ListArray繼承並實現了List。 所以List不能被構造,但可以向上面那樣為List創建一個引用,而ListArray就可以被構造。 Li

JavaListArrayList區別(加入了個人見解)

       轉載自:http://www.cnblogs.com/aisiteru/articles/1151874.html       第一次看這篇文章時,是在CSDN部落格中看到的,作者寫的初衷還是蠻好的,但是確實有錯誤的地方和不是很明白的地方。於是就很想去看看原文,

JavaListArrayList區別

List是一個介面,而ListArray是一個類。  ListArray繼承並實現了List。  所以List不能被構造,但可以向上面那樣為List建立一個引用,而ListArray就可以被構造。  List list;     //正確   list=null;  Lis

Java集合面試題(02) JavaListSet之間區別

本文為本博主翻譯,未經允許,嚴禁轉載! 簡介 Java中List和Set之間有什麼區別是一個非常流行的Java集合面試問題,也是在Java中使用Collection類時要記住的一個重要的基本概念。 List和Set都是Java程式最重要的Collection類中的兩個,以及

JavaVectorArrayList,LinkedList的區別

文章目錄 ArrayList 和 Vector 、LinkedLis t原理 ArrayList 和 Vector 部分原始碼解析 ArrayList 和 Vector 、LinkedList 的使用 ArrayList 和 Vector 、LinkedLi

JavaArrayArrayList的主要區別(

1)精闢闡述: 可以將 ArrayList想象成一種“會自動擴增容量的Array”。2)Array([]):最高效;但是其容量固定且無法動態改變;     ArrayList:  容量可動態增長;但犧牲效率;3)建議: 基於效率和型別檢驗,應儘可能使用Array,無法確定陣

ArrayArrayList之間區別

1. Array型別的變數在宣告的同時必須進行例項化(至少得初始化陣列的大小),而ArrayList可以只是先宣告。2. Array只能儲存同構的物件,而ArrayList可以儲存異構的物件。 同構的物件是指型別相同的物件,若宣告為int[]的陣列就只能存放整形資料,st

java棧的區別

mem 線程 所有 生成 werror 空間 調用 訪問 指向 01,各司其職;         棧內存用來存儲局部變量和方法的調用,         而堆內存用來存儲java中的對象,無論是成員變量,局部變量,還是類變量         他們指向的對象都存儲在堆內存中。

javaComparator Comparable的區別

true public arr ins ride err instance ural code 1、Comparable的代碼如下: public interface Comparable<T> { public int compareTo(T o);

JavaRuntimeExceptionException的區別

字符 所有 數組越界 技術 ace stat ast == erro 在java的異常類體系中,Error和RuntimeException是非檢查型異常,其他的都是檢查型異常。 所有方法都可以在不聲明throws的情況下拋出RuntimeException及其子類 不可以

Java堆的區別

分配內存 基本 變量 類型 名稱 垃圾回收器 函數 一個數 棧內存 在函數中定義的一些基本類型的變量和對象的引用變量都在函數的棧內存中分配。當在一段代碼塊定義一個變量時,Java就在棧中為這個變量分配內存空間,當超過變量的作用域後,Java會自動釋放掉為該變量

Javaequalshashcode的區別

equals方法 div true 區別 hash pos post 兩個 不一定 Java中equals和hashcode方法是在Object對象中的,所以每個對象都有這兩個方法,大多數時候我們為了實現特定需求需要重寫這兩個方法 equals和hashcode方法常用在同

javaerrorexception的區別

方法調用 IE tex 錯誤 top throws detail java err 轉載 :https://blog.csdn.net/lifengguo_njupt/article/details/7990485 java中error和exception的區別 Err

javawaitsleep的區別(多線程編程)

釋放 catch 時間 編程 cpu 程序 all CA exception sleep是thread中的一個方法,wait是object中的方法。 sleep是讓一個線程進入休眠狀態,在等待一段時間之後,進入可運行狀態,等待cpu分配資源並運行。同時sleep的過程中,有

JAVAStackHeap的區別

edit sys 靈活 double 對象 情況 編譯器 特殊 建議 轉自https://blog.csdn.net/wl_ldy/article/details/5935528 1.Java中對象都是分配在heap(堆)中。從heap中分配內存所消耗的時間

JAVAimplementextends的區別

extends是繼承父類,只要那個類不是宣告為final或者那個類定義為abstract的就能繼承,Java中不支援多重繼承,但是可以用介面來實現,這樣就要用到implements,繼承只能繼承一個類,但implements可以實現多個介面,用逗號分開就行了比如class A extends B i

java 多執行緒學習(JavaThread Runnable的區別

今天剛學習java多執行緒 在網上查了幾篇博文學習,個人覺得寫的不錯,但是有的地方有個疑問:Java中Thread 和 Runnable的區別。 然後,在網上查詢相關資料,發現幾乎都是一樣的。 下面貼出相關的程式碼: 如果一個類繼承Thread,則不適合資源共享。但是如果實現了

Java newnewInstance的區別

轉載來源:https://blog.csdn.net/iloveyin/article/details/7965183 ( @iloveyin )   1、類的載入方式不同    使用關鍵字 new 建立一個類的時候,這個類可以

Javathrowsthrow的區別講解

當然,你需要明白異常在Java中式以一個物件來看待。 並且所有系統定義的編譯和執行異常都可以由系統自動丟擲,稱為標準異常,但是一般情況下Java 強烈地要求應用程式進行完整的異常處理,給使用者友好的提示,或者修正後使程式繼續執行。 直接進入正題哈: 1.使用者程式自定義的異常和應用程式特定的異常,必