package 调试;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CarList {
public List<Car> CarSelect;// 泛型:< 指定类型> 用了泛型之后可以不用强转而且必须输入指定的类型
public CarList(){
CarSelect=new ArrayList<Car>();
}
public void CarAdd(){
Car t=new Car("100W","机甲");
CarSelect.add(t);
Car t1= CarSelect.get(0);
Car[] tt={new Car("50W","宝马"),new Car("45w","哈雷")};
CarSelect.addAll(Arrays.asList(tt));
Car tt2= CarSelect.get(1);
Car tt3= CarSelect.get(2);
}
//查询数据
public void CarGet(){
int size=CarSelect.size();
for(int i=0;i<size;i++){
Car tt4= CarSelect.get(i);
System.out.println("钱:"+tt4.money+",名字:"+tt4.name);
}
}
//修改数据
public void CarSet(){
System.out.println("第零位将被修改");
CarSelect.set(0,new Car("1w","哈哈哈"));
CarGet();
CarForeach();
}
public void CarRemove(){
System.out.println("0位删除数据");
Car x= CarSelect.get(0);
CarSelect.remove(x);
System.out.println("删除成功");
CarGet();
CarForeach();
}
/* // 在CarSelect中添加非car类型的字符串
public void test(){
System.out.println("嫩不能在CarList添加一个字符串尼?");
CarSelect.add("我只是一个无辜的字符串");
CarGet();//出现异常,原因:在进行强转时无法将String强转成Car类型,抛出异常
}
*/
public void CarForeach(){
for(Car x:CarSelect){
System.out.println("用foreach查询数据");
System.out.println("foreach方法 钱:"+x.money+"foreach方法 名字:"+x.name);
}
}
//泛型集合可以添加泛型子类的对象
public void fanxingtest(){
CarSon son=new CarSon();
son.name="泛型子类";
son.money="泛型子类测试成功";
CarSelect.add(son);
CarForeach();
}
public void 泛型不能使用基本类但能使用包装类(){
List<Car> ceshi=new ArrayList<Car>();
}
public static void main(String[] args) {
CarList gg=new CarList();
gg.CarAdd();
gg.CarGet();
gg.CarSet();
gg.CarRemove();
//gg.test();//调用后会发现报错
gg.fanxingtest();
}
}
这是我看了老师后自己打的,在打的过程中出现了个疑问
老师在打泛型不能使用基本类型只能使用包装类时
public void 泛型不能使用基本类但能使用包装类(){
List<Car> ceshi=new ArrayList<Car>();
}
这个ceshi没用定义啊? 不应该像第一次定义CarSelect一样,
public List ceshi();//
List<Car> ceshi=new ArrayList<Car>();//
定义然后初始化,可老师这个好像直接初始化了.为什么?
定义了,把ceshi定义成了一个List类型