package om.hanqi.test;
import java.util.ArrayList;
import java.util.List;
public class Test01 {
public static void main(String[] args) {
//List 集合
//List是接口,表示数据列表
//可变数组:有序,长度可变
//<>代表泛型,在定义集合是确定中的数据类型,jdk1.5之后才能加入的
//需要用实现类型进行实例化
List<String> ls = new ArrayList<>(); //明确了数据类型
List ls1 = new ArrayList(); //不能确定集合的数据类型
//把数据放入集合
//使用明确的类型接受数据
ls.add("asd");
//只能使用object类型接受数据
ls1.add(232332);
List<Integer> ls2=new ArrayList<>();
ls2.add(123);
}
}
package exception;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Test021 {
public static void main(String[] args) {
//List集合,存放的数据是Person及子类的实例
List<Person> lsp=new ArrayList <Person>();
//添加数据
Person p5=new Person("A",20);
lsp.add(p5);
lsp.add(new Person("a",20));
lsp.add(new Person("b",20));
lsp.add(new Person("c",20));
lsp.add(p5);
//添加子类的实力
lsp.add(new Student("e",20));
//插入数据
lsp.add(3, new Person("D",21));
//获取长度
System.out.println(lsp.size());
//查询数据,查找某个数据所在位置的索引
System.out.println(lsp.indexOf(p5));
//判断是否存在
System.out.println("判断是否存在="+lsp.contains(p5));
//遍历集合
//1、for循环
for(int i=0;i<lsp.size();i++)
{
System.out.println(lsp.get(i));
}
//2、foreach
System.out.println("foreach方式");
for(Person p:lsp)
{
System.out.println(p);
}
//3、迭代器
System.out.println("迭代器方式");
//获取迭代器
//可以看做是一个指针
//获取迭代器是,指针处于第一条记录的前面,在集合外面
Iterator<Person> it= lsp.iterator();
//判断能否移动
while(it.hasNext())
{
//移动指针到下一条数据,同事获取数据
Person p=it.next();
System.out.println(p);
//移除数据
if(p==p5){
it.remove();}
}
//获取数据
Person p3=lsp.get(3);
//显示对象的所有属性的值
System.out.println(p3);
//修改数据
lsp.set(0, new Person("F",30));
//移除数据
lsp.remove(1);
System.out.println("size()="+lsp.size());
//清除数据
lsp.clear();
System.out.println("size()="+lsp.size());
}
}