【简易版】Java ArrayList(增删改查)
1、什么是ArrayList
ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处:
(1)动态的增加和减少元素
(2)实现了ICollection和IList接口
(3)灵活的设置数组的大小
2、ArrayLis的创建以及增删改查方法
(1)ArrayList的创建以及元素的添加ArrayList <变量名> = new ArrayList(); //()中也可传参。
注释:上面是创建一个空的ArrayList列表。当我们想往列表中传递元素的时候是通过.add()的方法来进行赋值的。看一下下面的案例。另外要想输出出列表中的元素的话要通过for循环遍历。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public
class
test {
public
static
void
main(String[] args) {
ArrayList lis =
new
ArrayList();
lis.add(
"tony"
);
lis.add(
"tom"
);
lis.add(
"jack"
);
lis.add(
"mary"
);
lis.add(
"even"
);
for
(
int
i=
0
;i
String result = (String)lis.get(i);
System.out.println(result);
}
|
结果:输出结果如下。
tony
tom
jack
mary
even
(2)ArrayList中元素的删除
注释:变量名.remove(int Index); //通过.remove(int Index)方法来进行删除。这里直接传入要删除元素的下标即可。当然也可以直接传入值进行删除。如果你觉得用下边的方式比较麻烦那可以直接输入要删除项的值。
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
|
package
com.java.demo_9;
import
java.util.ArrayList;
public
class
Arraylist {
public
static
void
main(String[] args) {
ArrayList lis =
new
ArrayList();
lis.add(
"tony"
);
lis.add(
"tom"
);
lis.add(
"jack"
);
lis.add(
"mary"
);
lis.add(
"even"
);
System.out.println(
"---------------------------------"
);
System.out.println(
"
);
for
(
int
i =
0
; i < lis.size(); i++) {
String result = (String) lis.get(i);
System.out.println(result);
}
System.out.println(
"---------------------------------"
);
System.out.println(
"<删除元素后的ArrayList列表>:"
);
lis.remove(
1
);
for
(
int
i =
0
; i < lis.size(); i++) {
String result = (String) lis.get(i);
System.out.println(result);
}
System.out.println(
"---------------------------------"
);
}
}
|
结果:因为我指定的是lis.remove(1); index是从0开始起始的因此1代表第2个元素。因此删除的是tom这个元素。
tony
tom
jack
mary
even
---------------------------------
<删除元素后的ArrayList列表>:
tony
jack
mary
even
---------------------------------
(3)ArrayList中元素的修改注释:ArrayList方法中有一个.set方法(变量.set(index, element);)。通过这个方法可以修改列表中的值。(index指定下标,element指定要修改后元素的值)。一起来看一下下面的示例。
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
|
package
com.java.demo_9;
import
java.util.ArrayList;
public
class
Arraylist {
public
static
void
main(String[] args) {
ArrayList lis =
new
ArrayList();
lis.add(
"tony"
);
lis.add(
"tom"
);
lis.add(
"jack"
);
lis.add(
"mary"
);
lis.add(
"even"
);
System.out.println(
"---------------------------------"
);
System.out.println(
"
);
for
(
int
i =
0
; i < lis.size(); i++) {
String result = (String) lis.get(i);
System.out.println(result);
}
System.out.println(
"---------------------------------"
);
System.out.println(
"<修改后的ArrayList列表>:"
);
//lis.remove("tom");
lis.set(
2
,
"lucy"
);
for
(
int
i =
0
; i < lis.size(); i++) {
String result = (String) lis.get(i);
System.out.println(result);
}
System.out.println(
"---------------------------------"
);
}
}
|
结果:通过下面的结果可以看出第3个下标中的值已经被改变了。本来是jack现在更改成了lucy。
tony
tom
jack
mary
even
---------------------------------
<修改后的ArrayList列表>:
tony
tom
lucy
mary
even
---------------------------------
(3)ArrayList中元素的查找
注释:.contains()是用来判断一个元素是否包含在另一个元素中的。所以这里是判断查找的元素是否包含在列表中。返回值方面我直接用的是打印的方法。也可以通过boolean,return的方式返回。
案例1:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import
java.util.ArrayList;
public
class
tes {
public
static
void
main(String[] args) {
ArrayList lis =
new
ArrayList();
lis.add(
"tony"
);
lis.add(
"tom"
);
lis.add(
"jack"
);
lis.add(
"mary"
);
lis.add(
"even"
);
if
(lis.contains(
"vivian"
)){
System.out.println(
"包含此元素!"
);
}
else
{
System.out.println(
"该元素不存在!"
);
}
}
}
|
结果:返回结果参照代码。找到了就打印“包含此元素,没找到就显示元素不存在。
案例2:
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
|
package
com.java.demo_9;
import
java.util.ArrayList;
public
class
ArrLis {
public
static
void
main(String[] args) {
ArrayList list =
new
ArrayList();
list.add(
"tony"
);
list.add(
"tom"
);
list.add(
"jack"
);
list.add(
"kevin"
);
for
(
int
i=
0
;i
String result =(String )list.get(i);
System.out.println(result);
}
System.out.println(
"+++++++++++++++++++++++++++++++++++++"
);
ArrayList list1 =
new
ArrayList();
for
(
int
i=
0
;i
String res = (String)list.get(i);
if
(list.contains(
"kevin"
)){
list1.add(
"kevin"
);
System.out.println(list1);
break
;
}
else
{
System.out.println(
"没找到该元素!"
);
break
;
}
}
}
}
|
结果:因为列表中中包含"kevin"这个元素所以返回值为该元素。如果列表中没有该元素返回值为“没有找到该元素!”。
注意事项:我是重新设定了一个新空ArrayList(list1)。目的就是为了如果找到该值把这个值直接放到新的ArrayList中。另外if,else用了2次break。就是只要找到或者没找到就退出的意思。如果不这么写那么for循环每找一次结果就会打印一次,这显然是不必要的。
能够实现上例的方法很多,这里只介绍了ArrayList最基础的方法。仅供参考!