頁:
[1]
問一下ArrayList<Integer> arr = new ArrayList<Integer>(4); (4)何意義
// Java code to demonstrate the error of// get() method in ArrayList
// for ArrayList functions
import java.util.ArrayList;
public class GFG {
public static void main(String[] args)
{
// creating an Empty Integer ArrayList
ArrayList<Integer> arr = new ArrayList<Integer>(4);//(4)代表什麼意思啊= =" 為什我把4刪掉編譯還是過
// using add() to initialize values
//
arr.add(10);
arr.add(20);
arr.add(30);
arr.add(40);
// element at index 2
int element = arr.get(5);
System.out.println("the element at index 2 is " + element);
}
}
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div> 指定的初始容量。容量是用於存儲元素的底層數組的大小。
請參考:http://tw.gitbook.net/java/java_arraylist_class.html tryit244178 發表於 2021-1-24 12:09 PM static/image/common/back.gif
指定的初始容量。容量是用於存儲元素的底層數組的大小。
請參考:http://tw.gitbook.net/java/java_arrayli ...
先感謝師傅回應。
指定的初始容量。那麼是代表四個容量的意思對嗎@@?(跟陣列宣告意思相同)因為我看的是網路的範例拷貝過來這裡問的= ="然後像這串ArrayList<Integer> values = new ArrayList<>() 就沒有寫,沒有寫是代表直接動態配置容量嗎...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div> 復仇刺 發表於 2021-1-24 01:30 PM static/image/common/back.gif
先感謝師傅回應。
指定的初始容量。那麼是代表四個容量的意思對嗎@@?(跟陣列宣告意思相同)因為我看的是網 ...
恩.....抱歉我沒注意到我程式碼已經被我修改=="原始碼在下方=.="get(5)是在當時測東西修改忘了修改回來= ="...結果測試就炸了==
// Java code to demonstrate the working of
// get() method in ArrayList
// for ArrayList functions
import java.util.ArrayList;
public class GFG {
public static void main(String[] args)
{
// creating an Empty Integer ArrayList
ArrayList<Integer> arr = new ArrayList<Integer>(4);
// using add() to initialize values
//
arr.add(10);
arr.add(20);
arr.add(30);
arr.add(40);
System.out.println("List: " + arr);
// element at index 2
int element = arr.get(2);
System.out.println("the element at index 2 is " + element);
}
}
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div> 本帖最後由 kwj 於 2021-3-26 12:22 AM 編輯
ArrayList<Integer> values = new ArrayList<>();沒有宣告初始大小的話,預設是會建出長度為 10 的 ArrayList,也就是說相當於呼叫了 new ArrayList<>(10)。
指定初始大小最主要的原因是在於要避免發生 ArrayList 空間不夠用的問題。因為 ArrayList 會在空間不夠時自動擴展,但它擴展的方法效率很差(主要是在於要把所有資料搬去新的 array),所以如果可以預測需要的大小時,盡量事先指定大小,整體程式的執行效率會比較好。
除此之外,更確切地說,其實 new ArrayList<>() 在一開始是會產生一個長度為 0 的陣列,然後真正上面所說的「預設會建出長度為 10 的 ArrayList」是在第一次對這個 ArrayList 呼叫 add() 的時候。換言之,這個設計是為了 lazy initialize,只有在你實際地使用到這個 ArrayList 時,它才會幫你向系統索取資源。...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><br><br><br><br><br><div></div>
頁:
[1]