陣列與鍊錶都是我們在編碼過程中最經常使用的資料結構,陣列是一種連續的資料結構,而鍊錶是一種離散的資料結構,我們在編碼的過程中經常需要在這兩種資料結構之間進行來回的轉換,從而來解決我們遇到的一些問題,這裡我總結了一些陣列和鍊錶之間的轉換方法。
遍歷陣列,使用list.add()逐個新增
迴圈遍歷方法是我們最容易想到的,但是涉及到迴圈時間效率就比較低。
int arr = ;
listlist = new arraylist<>();
for (int i = 0; i < arr.length;i++)
執行結果:
這種方法比較簡單,也非常好理解。
陣列自帶的工具集,arrays.aslist(arr).
陣列自帶的工具集雖然使用非常方便,不用自己編寫**,直接呼叫既可以使用,但是也有一定的侷限性,只能轉換引用型別的陣列,不能轉換基本資料型別的陣列。
比如可以轉換陣列:string arr;
但是不能轉換陣列:int arr, 只能轉換integer arr.
integer arr = ;
listlist = arrays.aslist(arr);
執行結果:
這種方法針對於引用型別的陣列使用起來還是非常的方便的,直接呼叫系統類就可以實現。
基本資料型別陣列的一步轉換
方法2只能轉換基本資料型別不能轉換引用資料型別,但是我們常常使用的都是int整型陣列,所以這種方法可以將基本資料型別也一步轉換為鍊錶。
int arr = ;
listlist = intstream.of(arr).boxed().collect(collectors.tolist());
執行結果:
遍歷集合
將鍊錶轉換為陣列也是我們常常要使用到的,第一種方式就是遍歷鍊錶將鍊錶的數值賦值給陣列。
listlist=new arraylist<>();
list.add(1);
list.add(3);
list.add(2);
int arr=new int[list.size()];
for(int i=0;i執行結果:
使用工具集
可以將鍊錶轉化為引用資料型別的陣列
listlist=new arraylist<>();
list.add(1);
list.add(3);
list.add(2);
integer arr=new integer[list.size()];
list.toarray(arr);
for(integer a:arr)
這裡可以將鍊錶轉換為引用資料型別,然後再將引用資料型別轉變為基本資料型別即可。
因為陣列和鍊錶是我們非常常見的兩種資料結構,在我們的編碼過程中也是十分重要的,而兩者之間的轉化也是我麼常做的,所以我總結了常用的幾種轉換方法.
希望可以幫到小夥伴嗎。希望小夥伴們可以點讚關注。
演算法講解 選擇排序 陣列鍊錶
陣列 使用陣列儲存item意味著所有item在記憶體中都是相連的。在陣列中儲存新的item可能很麻煩,because if 沒有了新空間,就得移動到記憶體的其他地方,因此新增新元素會很慢。陣列刪除元素也很麻煩,刪除元素後,必須將後面的元素前移。結決辦法1 預留空間。缺點 1 額外請求的位置可能用不上...
linux核心鍊錶講解
a linux核心鍊錶中的幾個主要函式 下面是核心中的原始碼拿出來給大家分析一下 1 初始化 define init list head ptr do while 0 ptr為struct list head,其中包括兩個指標next和prev,這裡已經可以看出核心鍊錶是雙向迴圈鍊錶 2 尾部插入 ...
轉)全面講解Oracle查詢使用者表空間
在向大家詳細介紹oracle查詢使用者表空間之前,首先讓大家了解下oracle是什麼,然後全面介紹oracle查詢使用者表空間。oracle公司是全球最大的資訊管理軟體及服務 商,成立於1977年,總部位於美國加州 redwood shore。2000財年 99年6月到2000年5月 營業額達101...