陣列(array)和一串(string)的區別

兩者之間的主要區別在於陣列可以具有任何長度的任何資料型別,而字串通常是以空字元“\0”結尾的ASCII字元。兩者在不同程式語言中的實現方式都有很大的不同。陣列和字串在java中的工作方式與C++中的工作方式非常不同。本文介紹陣列和字串之間的無偏比較。...

兩者之間的主要區別在於陣列可以具有任何長度的任何資料型別,而字串通常是以空字元“\0”結尾的ASCII字元。兩者在不同程式語言中的實現方式都有很大的不同。陣列和字串在java中的工作方式與C++中的工作方式非常不同。本文介紹陣列和字串之間的無偏比較。

陣列(array)和一串(string)的區別

什麼是陣列(an array)?

許多應用程式都涉及大量資料,要處理如此大量的資料,我們需要一種強大的資料型別,以方便高效地儲存和訪問資料項。這就是陣列出現的地方。陣列是一種特殊的變數,它引用由公共名稱引用的相似型別變數的順序集合。在技術術語中,它是具有相同基型別的元素的有序集合,這些元素共享一個名稱。簡單地說,它提供了一種將相關資訊分組在一起的方便方法。java中的陣列與C++中的陣列有很大的不同。

陣列(array)和一串(string)的區別

什麼是一根繩子(a string)?

字串是一系列字元,表示為以特殊字元“\0”(空字元)結尾的單個資料項。在爪哇和C++中,字串是類,它們的行為不同。字串的宣告類似於陣列,char型別除外。字串是具有公共名稱的連續值序列。與陣列不同,字串是不可變的,這意味著一旦賦值就不能修改它們的值。一旦為字串分配了值,就不能更改字串的原始內容。它們是程式設計範例中最常用的類之一。

陣列和字串之間的差異

定義

陣列是具有相同基型別的元素的固定大小的有序集合。它只是一個類似型別變數的集合,這些變數共享一個名稱,可以用來表示名稱列表或數字列表。字串類似於陣列,但有幾個例外。它是表示為單個資料項的字元序列。

儲存

陣列和字串之間的主要區別之一是它們在記憶體中的儲存方式。一個連續的記憶體塊被分配給一個陣列,意味著它代表一個連續的記憶體塊。陣列的元素被連續地儲存在不斷增加的記憶體位置中。當字串宣告為字元陣列時,它們與其他型別的陣列一樣儲存。string類包含指向堆記憶體某個部分的指標,其中字串的實際內容儲存在記憶體中。

狀態

兩者之間的關鍵區別之一是字串是不可變的,這意味著一旦分配了字串物件,物件的值就不能在記憶體中更改。不可變只是指物件在建立後不能修改的狀態。一旦為字串分配了值,就不能修改字串的原始內容。這僅僅意味著新值不能被分配到儲存先前值的記憶體位置中的相同地址。另一方面,陣列是可變的,這意味著欄位即使在建立之後也可以更改或修改。

資料型別

陣列是表示資料或儲存和訪問相同或不同資料型別的物件的最有效的資料結構。它們是動態建立的,可以分配給任何資料型別的變數。在java中,可以建立陣列,以便儲存不同的資料型別。它可以儲存原語和引用。陣列是一次能夠容納多個值的特殊變數。另一方面,字串只能儲存最常用的資料型別的char資料。字元字串可以容納任意字母和數字序列。

大小

陣列的長度是在建立時確定的,一旦完成,長度是固定的。簡單地說,陣列的長度是固定的,這意味著它可以容納固定數量的單一型別的值。C中不允許使用可變大小的陣列。一旦分配了一個陣列,它的大小就固定了。字串的大小是可變的,這意味著如果它是char指標,則可以更改它。

陣列與字串:比較圖

陣列(array)和一串(string)的區別

總結 - 陣列的(of array) vs. 一串(string)

字串和陣列非常相似,只是陣列的長度是固定的,而字串的元素數可以是可變的。從技術上講,陣列是一種特殊型別的變數,一次可以儲存多個值。它們是相似資料型別元素的順序集合,而字串是用於表示文字而不是數字的字元序列。此外,字串是不可變的,這意味著物件的值一旦建立就不能修改,而陣列是可變的,這意味著欄位可以修改。簡單地說,陣列是相似型別變數的集合,而字串是由單個資料型別表示的字元序列。

  • 發表於 2021-06-25 10:17
  • 閱讀 ( 35 )
  • 分類:科技

你可能感興趣的文章

字串緩衝區(string stringbuffer)和java中的stringbuilder(stringbuilder in java)的區別

...Buffer速度慢。 字串拼接 StringBuilder速度很快。 總結 - 一串(string) vs. 字串緩衝區(stringbuffer) String、StringBuffer和StringBuilder看起來是相同的,但是它們有不同的含義。所有這些都是Java類。在Java中String、StringBuffer和StringBuilder的區...

  • 發佈於 2020-10-02 19:22
  • 閲讀 ( 45 )

for迴圈(for loop)和foreach迴圈(foreach loop)的區別

...控制結構,而foreach迴圈是一種增強的for迴圈,只適用於陣列和集合。 目錄 1. 概述和主要區別 2. 什麼是迴圈 3. 什麼是foreach迴圈 4. for迴圈與foreach迴圈的相似性 5. 並排比較-表格形式的for迴圈與foreach迴圈 6. 摘要 什麼是for迴圈(for ...

  • 發佈於 2020-10-19 07:26
  • 閲讀 ( 80 )

選中的(checked)和java中的未檢查異常(unchecked exception in java)的區別

...考下面的程式碼。 int array1[]={1,2,3,4,5}; System.out.println(陣列1[5]); 這將導致異常。array1是一個包含5個元素的陣列。陣列的起始索引為零。列印第5個索引值會導致異常,因為它超出了界限。array1的最大索引為4。 圖03:ArrayoutBound...

  • 發佈於 2020-10-19 08:38
  • 閲讀 ( 62 )

json格式(json)和xml(xml)的區別

...料變得複雜時,可能很難讀取XML。 下面是一個使用JSON的陣列示例。 {“學生”:[ {“id”:“S001”,“name”:“Ann”}, {“id”:“S002”,name:“Peter”} ] } 使用XML格式的示例。 <students> <student> S001安 S002彼得 </student&...

  • 發佈於 2020-10-20 01:35
  • 閲讀 ( 45 )

通用(generic)和c中的非泛型集合#(non-generic collection in c#)的區別

...來克服這個問題。泛型集合將元素內部儲存在實際型別的陣列中。因此,不需要進行型別鑄造。它們可以用於儲存指定型別或型別的元素。一些常規集合類有列表<T>、字典<TKey、TValue>、SortedList<T...

  • 發佈於 2020-10-24 01:08
  • 閲讀 ( 52 )

陣列(arrays)和連結列表(linked lists)的區別

陣列與連結列表 陣列是儲存元素集合的最常用的資料結構。大多數程式語言都提供了方法來輕鬆地宣告陣列和訪問陣列中的元素。連結串列,更確切地說是單鏈表,也是一種可以用來儲存元素集合的資料結構。它由一系列節...

  • 發佈於 2020-11-05 09:04
  • 閲讀 ( 36 )

java8lambdas簡介

...在表示式中表示類的方法的簡潔方法。它有一個引數列表和一個主體。主體可以是單個表示式或塊。它通常用於需要介面實現的地方。當需要一個介面作為呼叫方法的引數時,通常會出現這種需求。 ...

  • 發佈於 2021-03-12 08:09
  • 閲讀 ( 46 )

8款酷炫的智慧手機控制玩具,你暗暗渴望!

JavaArrayList是一個通用的可調整大小的陣列。它提供了其他語言中陣列通常需要的大部分功能。這些操作包括:使用索引訪問元素、新增、刪除和更新元素、動態重新調整大小、對元素進行迭代等。這些操作中的大多數都經過了...

  • 發佈於 2021-03-13 20:41
  • 閲讀 ( 49 )

python字典:如何使用它編寫更好的程式碼

python字典是一種資料結構,類似於其他程式語言中的關聯陣列。陣列或列表按位置索引元素。另一方面,字典透過可以是字串的鍵來索引元素。可以將字典視為無序的鍵值對集。 ...

  • 發佈於 2021-03-14 05:15
  • 閲讀 ( 39 )

陣列和列表在python中的工作方式

陣列和列表是程式設計中最有用的資料結構——儘管很少有人真正地利用它們來發揮他們的全部潛能。今天我將透過基本知識和一些簡單的Python示例來討論您。 ...

  • 發佈於 2021-03-15 17:19
  • 閲讀 ( 52 )