1用法
ArrayList
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public
static
void
main(String[] args) {
// ArrayList類實現一個可增加的動態數組
List<String> list =
new
ArrayList<String>();
// 插入元素
list.add(
"list1"
);
list.add(
"list2"
);
// 打印list的大小
System.out.println(list.size());
// 按索引移除元素
list.remove(
0
);
// 按對象移除元素
list.remove(
"list2"
);
// 打印list的大小
System.out.println(list.size());
// 清空list
list.clear();
}
|
LinkedList
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public
static
void
main(String[] args) {
// LinkedList類實現了鏈表,可初始化化爲空或者已存在的集合
LinkedList<String> list =
new
LinkedList<String>();
// 插入元素
list.add(
"list2"
);
list.add(
"list3"
);
// 向鏈表頭插入數據
list.addFirst(
"list1"
);
// 向鏈表尾插入數據
list.addLast(
"list4"
);
for
(String str : list) {
System.out.println(str);
}
// 獲取鏈表頭數據
System.out.println(
"鏈表頭數據:"
+ list.getFirst());
// 獲取鏈表尾數據
System.out.println(
"鏈表尾數據:"
+ list.getLast());
}
|
2排序
數字排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public
static
void
main(String[] args) {
// 建立list
List<Integer> list =
new
ArrayList<Integer>();
// 插入元素
list.add(
2
);
list.add(
0
);
list.add(
3
);
list.add(
4
);
list.add(
1
);
Collections.sort(list);
for
(
int
i : list) {
System.out.println(i);
}
}
|
中文排序
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public
static
void
main(String[] args) {
ArrayList<String> list =
new
ArrayList<String>();
list.add(
"一舉成名-Y"
);
list.add(
"人山人海-R"
);
list.add(
"海闊天空-H"
);
list.add(
"曠古絕倫-K"
);
list.add(
"後來居上-H"
);
Comparator<Object> cmp = Collator.getInstance(java.util.Locale.CHINA);
Collections.sort(list, cmp);
for
(String str : list) {
System.out.println(str);
}
}
|
實體類排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
package
net.xsoftlab.baike;
import
java.util.ArrayList;
import
java.util.Collections;
import
java.util.Comparator;
import
java.util.List;
public
class
TextList {
public
static
void
main(String[] args) {
List<User> userlist =
new
ArrayList<User>();
userlist.add(
new
User(
"Y - 易小星 "
,
33
));
userlist.add(
new
User(
"W - 王大錘"
,
33
));
Comparator<User> cmp =
new
ComparatorUser();
Collections.sort(userlist, cmp);
for
(User user : userlist) {
System.out.println(user.getName());
}
}
}
class
ComparatorUser
implements
Comparator<User> {
@Override
public
int
compare(User u1, User u2) {
// 先按年齡排序
int
flag = u1.getAge().compareTo(u2.getAge());
// 年齡相等比較姓名
if
(flag ==
0
) {
return
u1.getName().compareTo(u2.getName());
}
else
{
return
flag;
}
}
}
class
User {
private
String name;
private
Integer age;
public
User() {
super
();
}
public
User(String name, Integer age) {
super
();
this
.name = name;
this
.age = age;
}
public
String getName() {
return
name;
}
public
void
setName(String name) {
this
.name = name;
}
public
Integer getAge() {
return
age;
}
public
void
setAge(Integer age) {
this
.age = age;
}
}
|
3遍歷
三種遍歷方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public
static
void
main(String[] args) {
List<String> list =
new
ArrayList<String>();
// 插入元素
list.add(
"list1"
);
list.add(
"list2"
);
list.add(
"list3"
);
System.out.println(
"第一種遍歷方法 - >"
);
for
(String str : list) {
System.out.println(str);
}
System.out.println(
"第二種遍歷方法 - >"
);
for
(
int
i =
0
; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println(
"第三種遍歷方法 - >"
);
Iterator<String> iter = list.iterator();
while
(iter.hasNext()) {
System.out.println(iter.next());
}
}
|
遍歷時移除元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
package
net.xsoftlab.baike;
import
java.util.ArrayList;
import
java.util.Iterator;
import
java.util.List;
public
class
RemoveItemFromList {
public
static
void
main(String[] args) {
List<String> list =
new
ArrayList<String>();
// 插入元素
list.add(
"list1"
);
list.add(
"list2"
);
list.add(
"list2"
);
list.add(
"list3"
);
// 實例化新的list防止因傳遞地址而達不到測試效果。
remove1(
new
ArrayList<String>(list));
remove2(
new
ArrayList<String>(list));
remove2_1(
new
ArrayList<String>(list));
remove3(
new
ArrayList<String>(list));
}
public
static
void
remove1(List<String> list) {
System.out.print(
"第一種方法 - > "
);
try
{
for
(String str : list) {
if
(str.equals(
"list2"
))
list.remove(str);
}
}
catch
(Exception e) {
System.out.println(
"移除失敗!"
);
}
}
public
static
void
remove2(List<String> list) {
System.out.print(
"第二種方法 - > "
);
for
(
int
i =
0
; i < list.size(); i++) {
String str = list.get(i);
if
(str.equals(
"list2"
))
list.remove(str);
}
System.out.println(list);
System.out.println(
"也有異常,能夠用下面的方法避免。"
);
}
public
static
void
remove2_1(List<String> list) {
System.out.print(
"第二種方法修正 - > "
);
for
(
int
i =
0
; i < list.size(); i++) {
String str = list.get(i);
if
(str.equals(
"list2"
)) {
list.remove(str);
// 因移除了元素,位置發生偏移,須要從新對當前位置的元素進行判斷。
i--;
}
}
System.out.println(list);
}
public
static
void
remove3(List<String> list) {
System.out.print(
"第三種方法 - > "
);
Iterator<String> iter = list.iterator();
while
(iter.hasNext()) {
String str = iter.next();
if
(str.equals(
"list2"
))
iter.remove();
}
System.out.println(list);
}
}
|