import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ListTest01 {
public static void main(String[] args) {
List list = new ArrayList();//因为要使用List接口中的方法,所以这里要使用List创建对象。
//添加元素
list.add("A");//默认都是向集合末尾添加元素
list.add("B");
list.add("C");
//向指定位置添加元素
list.add(1,"haha");//向集合下标1的位置添加haha
//迭代
Iterator it = list.iterator();
while(it.hasNext()){
Object a = it.next();
System.out.println(a);
}
//获取元素
Object f1 = list.get(0);//获取第一个元素
//通过下标遍历(list接口特有方式)
for (int i = 0; i < list.size(); i++) {
Object element = list.get(i);
System.out.println(element);
}
}
}
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
public class ArrayListTest01 {
public static void main(String[] args) {
//默认初始容量为10
List list = new ArrayList();
//指定初始容量
List list1 = new ArrayList(100);
//创建一个HashSet集合
Collection cl = new HashSet();
cl.add(100);
cl.add(400);
cl.add(900);
cl.add(29);
//将HashSet集合转换称List集合
List list2 = new ArrayList(cl);
for (int i = 0; i < list2.size(); i++) {
System.out.println(list2.get(i));
}
}
}
泛型:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class GenericTest01 {
public static void main(String[] args) {
//使用泛型之后
//使用泛型List后,表示List集合中只允许存储Animal类型的数据
//用泛型来指定集合中存储的数据类型
List list = new ArrayList<>();
Dog d = new Dog();
Bird b = new Bird();
list.add(d);
list.add(b);
//获取迭代器,表示这个迭代器迭代的是Animal类型
Iterator it = list.iterator();
while(it.hasNext()){
//使用泛型后,每一次迭代返回的类型都是Animal类型
Animal animal = it.next();
//此时调用Animal不需要强制类型转换,可直接调用
//但是调用子类特有方法还是需要进行向下转型
animal.move();
if(animal instanceof Bird){
Bird bird = (Bird)animal;
bird.fly();
}
if(animal instanceof Dog){
Dog dog = (Dog)animal;
dog.eat();
}
}
}
}
class Animal{
public void move(){
System.out.println("移动");
}
}
class Bird extends Animal{
public void fly(){
System.out.println("飞");
}
}
class Dog extends Animal{
public void eat(){
System.out.println("吃");
}
}
自定义泛型:
public class GenericTest02{ //这里<>里的为标识符,可自定义,但通常用E(Element)和T(Type) public void doSome(E o){ //这里方法中的E需要与类定义的 相同 System.out.println(o); } public static void main(String[] args){ //创建对象时的<>需要指定的类型,如Animal,String,Integer等等 GenericTest02 gt = new GenericTest02<>(); gt.doSome("括号里写的东西需要与创建对象时写泛型类型相同"); } }



