java里有基于动态数组技术封装出来的ArrayList容器类, 它相于c++里的vector类模板。可用于存放各种类型的数据,而且数量没有限制.
用法:
ArrayList<在存放的数据类型> 容器对象名; //创建容器对象
如创建一个存放字符串的容器对象:ArrayList<String> l = new ArrayList<String>();
容器对象名.add(数据); //增加要存储的数据到容器对象里
如增加一个字符串到容器对象里: l.add("hello");
获取容器对象里每一项的数据:
像数组一样操作的方法, 如获取容器对象里的每一个字符串并输出:
for (int i = 0; i < l.size(); i++)
{
System.out.println(l.get(i).toString());
}
用迭代器的操作方法:
Object obj;
Iterator<String> it = l.iterator() ;
while (it.hasNext()) {
obj = it.next();
System.out.println(obj.toString());
}
ArrayList的完成测试代码:
/* Hello.java */
import java.util.ArrayList;
import java.util.Iterator;
public class Hello {
public static void main (String args[]) {
ArrayList<String> l = new ArrayList<String>();
l.add("hello");
l.add("nono");
l.add("hell");
for (int i = 0; i < l.size(); i++)
{
System.out.println(l.get(i).toString());
}
Object obj;
Iterator<String> it = l.iterator() ;
while (it.hasNext()) {
obj = it.next();
System.out.println(obj.toString());
}
System.out.println("hello");
}
}
java里的LinkedList容器里基于链表的技术封装出来的容器类,相当于C++里的list容器类. 使用方法与ArrayList容器类的基本一样。
如用LinkedList容器对象来存放自定义的Student类对象:
/* Hello.java */
import java.util.Iterator;
import java.util.LinkedList;
class Student extends Object {
private String name;
private int id;
public Student(int id, String name) {
this.name = name;
this.id = id;
}
public String toString() {
return "id " + id + " name " + name;
}
}
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkedList<Student> l = new LinkedList<Student>(); //创建一个存放Student对象的容器对象
l.add(new Student(0, "小红")); //增加Student对象到容器对象里
l.add(new Student(1, "小明"));
l.add(new Student(2, "大大"));
l.add(new Student(3, "小小"));
//遍历方法1
for (int i = 0; i < l.size(); i++)
System.out.println(l.get(i));
//遍历方法 2
Iterator<Student> it = l.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}