?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

皇馬國際老品牌網站:JAVA提高教程(7)認識List列表之ArrayList

?

ArrayList是List里面應用率最高的。

package collection.lession7;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collection;

import java.util.Iterator;

import java.util.List;

/**

* 老紫竹JAVA前進教程(7)-熟識List列表之ArrayList

*

* @author 老紫竹

*

*/

public class Lession7 {

public static void main(String[] args) {

testNormal();

testSpecial();

// 一個最常見的差錯

testForProblem();

}

public static void testNormal() {

// -------------------------------------------------------

// 聲明一個列表

// 容許放入任何數據

// -------------------------------------------------------

ArrayList list = new ArrayList();

// 放入整數

// 當然你用 new Integer(1)也可以

list.add(1);

// 放入字符串

list.add("abc");

// 放入浮點數

list.add(new Float(1.11));

// add會將數據保存到列表的尾部

showList(list); // 1, abc, 1.11]

// 下面我們在列表的頭部增添數據

list.add(0, 2);

list.add(0, "bcd");

list.add(0, new Double(2.34));

// 列表可以指定插入的位置

// 0 是頭部第一個位置,以是數據都逐個放到最前面了

showList(list); // [2.34, bcd, 2, 1, abc, 1.11]

// 下面我們插入到我們盼望的任何位置

// 當然不能越界,(0 到 list.size()-1)范圍內才可以

list.add(1, 3);

list.add(4, "xyz");

// 數據被放到了精確的位置

showList(list); // [2.34, 3, bcd, 2, xyz, 1, abc, 1.11]

// -------------------------------------------------------

// 我們有了數據,我們來測試讀取數據

// -------------------------------------------------------

// 我們可以經由過程指定索引的位置,來拿到我們盼望的數據

System.out.println(list.get(0)); // 2.34

System.out.println(list.get(4)); // xyz

// -------------------------------------------------------

// 測試是否存在某個數據

// -------------------------------------------------------

System.out.println(list.contains("xyz")); // true

// 測試是否包孕一組數據

Collection c = new ArrayList();

c.add(1);

c.add(2);

System.out.println(list.containsAll(c)); // true

c.add(3);

c.add(4);

// containsAll_1234=false

System.out.println(list.containsAll(c)); // false

// -------------------------------------------------------

// 查找某個數據所在的索引位置

// 假如不存在,返回-1

// -------------------------------------------------------

System.out.println(list.indexOf(3)); // 1

System.out.println(list.indexOf("xyz")); // 4

System.out.println(list.indexOf("abcd")); // -1

// -------------------------------------------------------

// 測試刪除數據

// 請留意,

// 假如你應用整數(int)數字,則默認調用的是remove(int index);

// 假如你用 long,則會調用 remove(Object obj);

// 以是假如你要刪除整數,請應用 remove(new Integer(int));

// -------------------------------------------------------

// 刪除索引為1的數據

list.remove(1);

// 索引為1的數據被干掉落了

showList(list); // [2.34, bcd, 2, xyz, 1, abc, 1.11]

// 刪除數字1 和字符串 abc

list.remove(new Integer(1));

list.remove("xyz");

showList(list); // [2.34, bcd, 2, abc, 1.11]

// -------------------------------------------------------

// 迭代器的應用

// -------------------------------------------------------

Iterator it = list.iterator();

while (it.hasNext()) {

System.out.print(it.next() + " "); // 2.34 bcd 2 abc 1.11

}

System.out.println();

// -------------------------------------------------------

// 轉化為數組

// -------------------------------------------------------

Object[] objs = list.toArray();

for (Object obj : objs) {

System.out.print(obj + " "); // 2.34 bcd 2 abc 1.11

}

System.out.println();

}

public static void testSpecial() {

// -------------------------------------------------------

// 測試重復和null

// -------------------------------------------------------

//

List list = new ArrayList();

list.add(123);

list.add(456);

list.add(123);

list.add(456);

// 數據容許重復

showList(list); // [123, 456, 123, 456]

list.add(null);

list.add(789);

list.add(null);

list.add(999);

// 容許放入多個null

showList(list); // [123, 456, 123, 456, null, 789, null, 999]

// ----------------------------------------皇馬國際老品牌網站---------------

// 測試一下查找著末一次呈現的位置

// -------------------------------------------------------

System.out.println(list.indexOf(123)); // 0

System.out.println(list.lastIndexOf(123)); // 2

// -------------------------------------------------------皇馬國際老品牌網站

// 轉化為數組

// 記得要轉化為Inerger.

// -------------------------------------------------------

Integer[] nums = (Integer[]) list.toArray(new Integer[0]);

// 留意數據里面有null,以是輪回變量不要用int 要用Integer

for (Integer num : nums) {

System.out.print(num + " "); // 123 456 123 456 null 789 null 999

}

System.out.println();

}

public static void testForProblem() {

// 一些同伙在向輪回里向列表增添工具的時刻

// 常常忘懷初始化,造成終極加入的都是同一個工具

List list = new ArrayList();

MyObject obj = new MyObject();

for (int i = 1; ilist2 = new ArrayList();

MyObject obj2 = null;

for (int i = 1; i <= 5; i++) {

obj2 = new MyObject();

obj2.setName("Name" + i);

list2.add(obj2);

}

// 里面的數據都是著末一個

showList(list2); // [Name1, Name2, Name3, Name4, Name5]

}

/**

* 顯示List里面的數據。

*

* @param list

*/

private static void showList(List l皇馬國際老品牌網站ist) {

System.out.println(Arrays.toString(list.toArray()));

}

}

class MyObject {

private String name;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

/**

* 重寫toString措施,輸出name

*/

public String toString() {

return name;

}

}

輸出結果

[1, abc, 1.11]

[2.34, bcd, 2, 1, abc, 1.11]

[2.34, 3, bcd, 2, xyz, 1, abc, 1.11]

2.34

xyz

true

true

false

1

4

-1

[2.34, bcd, 2, xyz, 1, abc, 1.11]

[2.34, bcd, 2, abc, 1.11]

2.34 bcd 2 abc 1.11

2.34 bcd 2 abc 1.11

[123, 456, 123, 456]

[123, 456, 123, 456, null, 789, null, 999]

0

2

123 456 123 456 null 789 null 999

[Name5, Name5, Name5, Name5, Name5]

[Name皇馬國際老品牌網站1, Name2, Name3, Name4, 皇馬國際老品牌網站Name5]

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

快三平台开户