这篇文章主要介绍了java中List集合及其遍历详解的相关资料,需要的朋友可以参考下
1. 首先List<E>集合继承与Collection<E>,是一个接口。
① Collection (集合框架是JDK1.2版本出现的)
② list:是有序的,元素可以重复,以为该集合体系有索引。
经常用到的是实现该接口的ArrayList和LinkedList类
③ Arraylist: 底层的数据结构使用的是数组结构,
特点: 查询速度很快,但是增删稍慢。线程不同步
LinkedList: 底层使用的是链表数据结构。
特点: 增删速度很快,查询稍慢。
Vector:(JDK1.0版本出现的) 底层是数组数据结构,线程同步。被ArrayList替代了。(已经不用了)
2. List的两种遍历方式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public
class
Demo {
public
static
void
main(String[] args) {
ArrayList<String> list =
new
ArrayList<String>();
list.add(
"A"
);
list.add(
"B"
);
list.add(
"C"
);
System.out.println(
"........第一种遍历方式:for遍历......"
);
for
(Object li : list) {
System.out.println(li);
}
System.out.println(
"........第二种遍历方式:ListIterator迭代遍历......"
);
ListIterator<String> it = list.listIterator();
while
(it.hasNext()) {
Object obj = it.next();
System.out.println(obj);
}
}
}
|
效果图:
3.使用LinkList模拟一个堆栈或者队列数据结构。即: 堆栈:先进后出 ; 队列: 先进先出
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
|
class
Duilie{
private
LinkedList<Object> link;
Duilie(){
link =
new
LinkedList<Object>();
}
public
void
myAdd(Object obj){
link.addFirst(obj);
}
public
Object myGet(){
return
link.removeLast();
//先进先出---若要改成先进后出,将removelast()改成removeFirst()
}
public
boolean
isNull(){
return
link.isEmpty();
}
}
public
class
Demo2 {
public
static
void
main(String[] args) {
Duilie dl =
new
Duilie();
dl.myAdd(
"java01"
);
dl.myAdd(
"java02"
);
dl.myAdd(
"java03"
);
dl.myAdd(
"java04"
);
while
(!dl.isNull()){
System.out.println(dl.myGet());
}
}
}
|
效果图:
以上为 先进先出,若要改为先进后出,则根据代码中写的改一下就可以了
以上所述就是本文的全部内容了,希望大家能够喜欢。