原文地址:http://baike.xsoftlab.net/view/208.html
1用法
ArrayList
Java | 复制
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
Java | 复制
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排序
数字排序
Java | 复制
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);
}
} |
中文排序
Java | 复制
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);
}
} |
实体类排序
Java | 复制
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遍历
三种遍历方法
Java | 复制
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());
}
} |
遍历时移除元素
Java | 复制
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);
}
} |