基本结构(常见类)
实现代码,以ArrayList为例
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 测试List接口的常用方法
*/
public class ListTest {
public static void main(String[] args) {
//Test02();
Test03();
}
//测试常见方法,多位于Collection之中,不涉及索引
public static void Test01(){
//有序,可重复
List list = new ArrayList();//泛型
System.out.println(list.isEmpty());//测试是否为空
list.add("zzj");//放入字符串
System.out.println(list.isEmpty());
System.out.println(list);
list.add("张三");
list.add("李四");
System.out.println(list);
System.out.println("list的大小"+list.size());//list的大小
System.out.println("是否包含指定元素"+list.contains("张三"));//list是否包含元素张三
list.remove("张三");//移除元素:张三,但并不是删除,只是不在容器之中了。
System.out.println(list);
Object[] objs = list.toArray();//转化为object数组
System.out.println("转化为数组"+ Arrays.toString(objs));
list.clear();//清空
System.out.println(list);
}
//测试和索引相关的操作
public static void Test02(){
//List存储的是:有序、可重复的
List list = new ArrayList();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
System.out.println(list);
list.add(2,"酋");//在索引2处插入“酋”,其他元素依次往后移动;
System.out.println(list);
list.remove(2);//删掉索引2处的元素
System.out.println(list);
list.set(2,"zzj");//设置完的是将索引处的原有元素改变成新的元素
System.out.println(list);
System.out.println(list.get(1));//指定索引位置的元素返回
list.add("B");//这个不能直接放导打印的方法之中
System.out.println(list);
System.out.println(list.indexOf("B"));//从头到尾查,找到第一个
System.out.println(list.lastIndexOf("B"));//从尾到头查,找到第一个
}
//测试两个容器之间的元素处理
public static void Test03(){
List list = new ArrayList();
list.add("ZZJ");
list.add("狗蛋子");
list.add("王二狗");
List list2 = new ArrayList();
list2.add("张三");
list2.add("李四");
list2.add("王二狗");
System.out.println(list);
System.out.println(list.containsAll(list2));//容器list有没有包含list2中所有的元素
list.addAll(list2);//list添加所有list2的元素
//System.out.println(list);
//list.removeAll(list2);//删除list2中都有的
//System.out.println(list);
System.out.println("list:"+list);
System.out.println("list:"+list2);
list.retainAll(list2);//取交集,但没有互异性
System.out.println(list);
}
}