ArrayList 建構及其它常用方法:
建構方法:
- ArrayList<String> list = new ArrayList<String>();
- ArrayList<String> list = new ArrayList(Arrays.asList("Ryan", "Julie", "Bob"));
兩種方法差在有無初始值,另外資料型態其實是可以省略不寫,但不建議省略,容易出現Exception。
而在 JAVA 1.7 之後的版本宣告上可以再更簡化,如下
ArrayList<String> list = new ArrayList<>();
在 new 後方的 <> 內資料型態是可以不用給的,因為與前面宣告的一樣所以可省略
其他像是 Arrays、Map、HashMap 等都可以使用此方法少打一點字
經常使用的方法:
1.加入元素
String str = new String();
list.add(str);
list.add("Array List!");
2.取值
list.get(index);
3.查詢list大小
int size = list.size();
4.查詢特定元素
boolean isIn = list.contains(s);
boolean isIn = list.contains("value");
查詢有回傳true,反之為false
5.查詢特定元素位置
int idx = list.indexOf(s);
回傳數值起始值為0
6.判斷List是否為空
boolean empty = list.isEmpty();
如果 list.size 大於 0 則回傳 true,反之為 false
7.刪除特定元素
list.remove(index);
刪除後如該index後還有資料,後面的資料會自動向前補上
8.排序
Collections.sort(ArrayList<?>);
ArrayList 二唯陣列用法:
建構方法:
ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();
list.add(new ArrayList<String>);
以上兩行都是必需的,在第一行的時候<>內的ArrayList<String>只是宣告list中的資料型態為ArrayList<String>,並沒有在list中加入元件,所以在第二行加入元件。
也可以這麼做
ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();
ArrayList<String> inSideList = new ArrayList<String>();
list.add(inSideList);
要注意的是,我們現在要的是二唯陣列,當然裡面的ArrayList不會只有一個,但如果要存入第二個ArrayList時必需再new出一個ArrayList再存入,變數名稱可以相同,但如果沒new的話會存取同一個記憶體位址,雖然陣列大小會是你指定的,但是得到的值都會是同一個。
加入元素:
list.get(index).add(new ArrayList<String>());
list.get(index).add("value");
加入第二個陣列:
list.add(new ArrayList<String>());
取值方法:
list.get(index).get(index);
其它用法:
因目前工作需要,所以建了一個可以存資料庫的陣列元素
建構方法:
Map<String, ArrayList<ArrayList<String>>> map = new HashMap<String, ArrayList<ArrayList<String>>>();
其實用三唯的ArrayList也可以得到差不多的效果,但Map的好處就是它不是以數字序號作為查詢條件,而是自已指定一個key,且key的型還可以自定,而我需要存入資料表名稱,所以就是用String嘍。
在建立好Map之後當然內容的ArrayList也是需要new的,建立的方法與二維的相同,所以不再說明。
加入元素:
可以先建立map再加入值
Map<String, ArrayList<ArrayList<String>>> map = new HashMap<String, ArrayList<ArrayList<String>>>();
map.put("key", new ArrayList<ArrayList<String>>());
map.get("key").add(new ArrayList<String>());
map.get("key").get(0).add("xxx");
或先建ArrayList後放入Map
ArrayList<ArrayList<String>>() list = new ArrayList<ArrayList<String>>();
list.add(new ArrayList<String>);
list.get(index).add("value");
map.put("key", list);
取值方法:
map.get(key).get(index).get(index);
加入元素過程會因所需功能而有所不同,但其做法其實都大同小異,只要了解為何要這樣做,ArrayList及Map會變成很好用的工具。
留言列表