close

ArrayList 建構及其它常用方法:

建構方法:

  1. ArrayList<String> list = new ArrayList<String>();
  2. 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會變成很好用的工具。

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 taurus770423 的頭像
    taurus770423

    Coding Life

    taurus770423 發表在 痞客邦 留言(2) 人氣()