Java基础知识总结:集合与泛型(上)

以下方法为往列表中添加元素:

List是接口,所以在构造方法中不能直接实例化,而通过ArrayList()实例化。

例:public List coursesToSelect = new ArrayList();

调用Add()方法添加到List中。有两种方法:

方法1:直接添加,例:CoursesToSelect.add(cr1);

方法2:可以指定添加的位置,例:CoursesToSelect.add(0,cr1);

 

使用get()方法取出一个对象,当一个对象被添加到集合中去的时候,它会被忽略掉类型,而都变成Object类型,取出时需要类型转换。

例:Course temp = (Course)coursesToSelect.get(0);

 

如果添加到List中的长度大于他目前的长度,则系统会出现异常,即数组下表越界异常

 

另外俩种addAll()方法:<br>

1、创建数组<br>

Course[]course={new Course("3",""),newCourse("4","")};//创建数组存放要添加的课程<br>

corsesToSelect.addAll(Arrays.asList(course);//asList方法<br>

2、将数据插入指定位置<br>

coursesToSelect.addAll(2,Arrays.asList(course2));//插入指定位置


以下三种方法都是用来取出List中元素的方法:

-----for循环-----

public voidtestGet(){

intsize=coursesToSelect.size();

for(inti=0;i<size;i++){

Course cr=(Course)coursesToSelect.get(i);//List.get()方法返回List的元素是一个普通对象,需要强转型为Course类型

System.out.println("取出的课程:"+cr.getId()+":"+cr.getName());

}}

-----迭代器-----

Iterator是一个接口,依赖于集合存在的

Iteratorit=courseToSelect.iterator();

while(it.hasNext()){

Course cr=(Course)it.next();

System.out.println("课程:"+ cr.id + ":" + cr.name);

}

-----foreach(增强for循环)-----

凡是继承了Iterable接口的类所生成的对象都可以用for/each循环

for(Objectobj:coursesToSelect){//遍历集合中的每一个元素,作为每一个Object变量

Course cr=(Course)obj;

System.out.println("课程:"+ cr.id + ":" + cr.name);

}

修改List中的元素

使用set(index,Object element)修改元素,index表示索引位置,element表示新对象。

修改List的元素

public voidtestModify(){

coursesToSelect.set(4,newCourse("7","毛概"));

}


删除List中的值

(删除元素)List中有remove(index),remove(对象值)和removeAll(Arrays.asList(对象数组名))方法来删除容器中元素的值(用法和add类似).

Course是信息课程类,有id和name属性。courseToSelect是list的序列容器对象。

1.remove(index);删除位置要大于0并且小于List(序列容器)的长度。如果要删除全部可以用for循环嵌套此方法。

2.remove(object);先要获得删除的值,用法是先定义一个信息变量通过get()来存放要删除的值,然后用remove(删除的对象值);

public voidtextdelect{

Coursecr=(Course)(courseToSelect.get(4));

courseToSelect.remove(cr);//通过remove(对象值);

或者 courseToSelect.remove(4);//通过remove(删除位置);}

3.removeAll(Arrays.asList());要删除指定的多个位置 Arrays.asLIst(对象数组名);作用是把数组转换为集合

用法是先创建信息对象数组存放删除元素的值,然后再用removeAll(Arrays.asList(对象数组名))方法,删除集合数组的元素。

public voidtextdelext2{

Course[]course={(Course)(courseToSelect.get(4)),(Course)(courseToSelect.get(5))}; // 定义数组存放要删除的值

courseToSelect.removeAll(Arrays.asList(course));// 删除4和5位置的值 }

}


应用泛型设计

泛型:

定义方法:public List<Course> courses//括号内为规定类型对象

实例化:this.courses=new ArrayList<Course>();

注意:

1.泛型集合中,除了可以存入泛型类型的对象实例,还可以存入泛型的子类型对象实例

2.泛型集合中不能存入基本数据类型元素,允许使用包装类来代替基本数据类型存入泛型集合

List<Integer> list = newArrayList<Integer>();//Integer为int 型的包装类

泛型输出用foreach时可以不用object,for(Course cr:courses)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值