您的位置:首页 > 编程语言 > Java开发

java list用法

2015-08-09 17:13 495 查看
推荐:

Java list的用法排序及遍历



要点:

1.list可以添加任何对象,包括自定义的类对象

//定义了一个Person类
class Person{
.....
}
//添加到中去
Person p1=new Person();
Person p2=new Person();
List list=new ArrayList();
list.add(p1);
list.add(p2);
for(int i=0;i<2;i++)
Person p=(Person) list.get(i);
//注意,这里一定要强制类型转换,因为List中取出的对象都是Object类型的,主要原因在与list本身没有使用泛型
}


2.list只是一个接口,不要进行实例化操作。但是需要实例化一个ArrayList或者LinkedList;

List接口实现的类:ArrayList(实现动态数组), Vector(实现动态数组) ,LinkedList(实现链表), Stack(实现堆栈)

List mylist = new ArrayList();

3.如果是有封装类,则最好就是在定义时就声明泛型,这样就无需进行强制类型转换。

4.配合迭代器进行读取操作

java.util.ArrayList类实现一个可增长的动态数组,请参考API帮助文档。使用该方法向集合内添加对象,并且这些对象是按照一定的顺序排列的,它内部原理是数组实现的,因此处理数据量较大时,不建议使用。

java.util.Vector()使用类似于java.util.ArrayList.

package helloworld;
import java.util.*;
public class Myexception {
public static void main(String[] args) {
// 声明List 并实例化为ArrayList
List al = new ArrayList();
//List al = new Vector();
// 使用add()方法添加元素
al.add("a");
al.add("b");
al.add("c");
al.add("d");
// 使用Iterator迭代器遍历出集合的元素并打印
for (Iterator i = al.iterator(); i.hasNext();) {
String str = (String) i.next();
System.out.println(str);
}
}

}


java.util.LinkedList类实现了链表,可初始化化为空或者已存在的集合,通常使用以下方法

add();向链表末尾添加对象。

addFirst()在链表开头添加对象。

addLast()在链表末尾添加对象。

getFirst()得到链表开头的对象。

getLast()得到链表末尾的对象。

注意该类提供了随机访问列表中的元素的方法,但是底层依然必须遍历去查找随机访问的对象,因此性能依然有限.

package helloworld;
import java.util.*;
public class Myexception {
public static void main(String[] args) {
//声明LinkedList并实例化
LinkedList al = new LinkedList();
//使用add()方法添加元素
al.add("a");
al.add("b");
al.add("c");
al.add("d");
//使用Iterator迭代器遍历出集合的元素并打印
for(Iterator i = al.iterator();i.hasNext(); ){
String str = (String) i.next();
System.out.println(str);
}
System.out.println("_____");
//向链表头和尾分别添加x和z
al.addFirst("z");
al.addLast("x");
//遍历查看添加后的结果
for(Iterator i = al.iterator();i.hasNext(); ){
String str = (String) i.next();
System.out.println(str);
}

}
}


添加索引版本:其实list方法因为是一个线性的列表存储,因此索引的使用也是在所难免。

package helloworld;

import java.util.*;

public class Myexception {
public static void main(String[] args) {
String a = "A", b = "B", c = "C", d = "D", e = "E";
List<String> list = new LinkedList<String>();
list.add(a);
list.add(e);
list.add(d);
list.set(1, b);// 将索引位置为1的对象e修改为对象b
list.add(2, c);// 将对象c添加到索引位置为2的位置
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}


java.util.Stack类实现了堆栈数据结构,即按照先进后出的原则存放数据。创建时只能为空。使用push()方法进行添加对象

public static void main(String[] args) {
//声明Stack并实例化
Stack al = new Stack();
//使用push()方法添加元素
al.push("a");
al.push("b");
al.push("c");
al.push("d");
al.push("f");
//使用Iterator迭代器遍历出集合的元素并打印
for(Iterator i = al.iterator();i.hasNext(); ){
String str = (String) i.next();
System.out.println(str);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: