*1 add方法的参数类型是Object。一边与接收任意对象
2集合中存储的是对象的引用(地址),集合中不存在对象实体
迭代器:集合取出的方式
Iterator<E> iterator()
返回在此 collection 的元素上进行迭代的迭代器
*/
public class CollectionTest {
public static void main(String[] args) {
//创建一个集合容器。使用Collection接口的子类 ArrayList
ArrayList al=new ArrayList();
//1 添加元素
al.add("java01");
al.add("java02");
al.add("java03");
al.add("java04");
//打印集合
sop(al);
//删除元素
al.remove("java02");
//al.clear();//清空集合
//判断元素
sop("java03是否存在"+al.contains("java03"));
//2 获取个数
sop("size:"+al.size());
}
public static void sop(Object obj){
System.out.println(obj);
}
}
List:元素有序的。可以重复。因为该集合体系有索引
特有方法,凡是可以操作角标的都是
增
add(int index, E element)
在列表的指定位置插入指定元素(可选操作)。
addAll(Collection<? extends E> c)
添加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序(可选操作)。
删
remove(int index)
移除列表中指定位置的元素(可选操作)。
改
set(int index, E element)
用指定元素替换列表中指定位置的元素(可选操作)。
查
get(int index)
返回列表中指定位置的元素
subList(int fromIndex, int toIndex)
返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。
listIterator(int index)
返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始
*/
public class ListTest {
public static void sop(Object obj){
System.out.println(obj);
}
public static void main(String[] args) {
ArrayList al=new ArrayList();
al.add("java01");
al.add("java02");
al.add("java03");
sop("元集合是"+al);/**
//在指定位置添加元素
al.add(1, "java08");
al.remove(2);//删除指定位置元素
al.set(2, "java007");//修改元素
sop("get(1):"+al.get(1));//通过角标获取元素
sop(al);
//获取所有元素
for(int x=0;x<al.size();x++){
System.out.println("al("+x+")="+al.get(x));
}*/
//Iterator方法是有限的只能对元素进行判断,取出,删除的操作其他的要通过ListIterator 方法获取
ListIterator li=al.listIterator();
while (li.hasNext()){
Object obj =li.next();
if (obj.equals("java02"))li.add("java008");
}
//倒序遍历
while(li.hasPrevious()){
sop("pre:"+li.previous());
}
sop(al);
}
}
/枚举就是Vector特有的取出方式,和迭代器相似。名称过长就不用了
public class VectorTest {
public static void main(String args[]){
Vector v =new Vector();
v.add("java01");
v.add("java02");
v.add("java03");
v.add("java04");
Enumeration en =v.elements();
while(en.hasMoreElements()){
System.out.println(en.nextElement());
}
}
}
LinkedList 特有方法
addFirst addLast
getFirst getLast 元素不被删除
removeFirst removeLast 获取元素元素被删除
NoSuchElementException - 如果此列表为空
jdk1.6出现了替代方法
offerFirst offerLast
peekFirst peekLast
pollFirst pollLast
使用LinkedList模拟一个数据结构堆栈:先进后出
队列:先进先出
*/
class DuiLie{
private LinkedList link;
DuiLie(){
link=new LinkedList();
}
public void myAdd(Object obj){
link.addFirst(obj);
}
public Object myGet(){
return link.removeFirst();//removeLast 先进先出
}
public boolean isNull(){
return link.isEmpty();
}
}
public class LinkedListTest {
public static void main(String[] args) {
DuiLie d1 =new DuiLie();
d1.myAdd("java01");
d1.myAdd("java02");
d1.myAdd("java03");
d1.myAdd("java04");
while(!d1.isNull()){
System.out.println(d1.myGet());}
}
}