Java集合框架篇-43-List集合的功能测试

       前面我们学习了什么是Collection以及集合的一些方法,这些方法基本上我们都有用代码去测试过。现在,我们来学习Collection这个根接口下的第一个子接口,叫List,Set接口我们后续学习。

     打开API,搜索List,找到java.util包下的List。我们可以发现List的父接口是Collection,而且List接口下的方法有很多和Collection集合里的方法是重复的,下面我们列举几个不一样的方法来测试学习下。

1.void add(int index, E element)

       我们之前学习过Collections的add()方法,当时里面的参数是泛型,表示任何对象都可以添加进入集合,而且返回值是布尔型。现在我们学习的这个添加方法是在指定的索引对应位置插入元素,元素类型是可以任意对象,注意返回类型是void。注意,使用这个方法可能出现索引越界异常。

package list;

import java.util.ArrayList;
import java.util.List;

public class Demo1_List {

	public static void main(String[] args) {
		List li = new ArrayList();
		// 添加元素,使用add()
		li.add("a");
		li.add("b");
		li.add("c");
		li.add("d");
		//使用add(index E),在指定索引位置插入元素
		li.add(2, "y");
		System.out.println(li);
	}

}

输出:[a, b, y, c, d]

      由于我们需要把y插入到索引为2的位置,索引是从0开始的,所以输出结果是[a, b, y, c, d],下面来举例一个由于索引没有控制好造成越界异常的例子。

package list;

import java.util.ArrayList;
import java.util.List;

public class Demo1_List {

	public static void main(String[] args) {
		List li = new ArrayList();
		// 添加元素,使用add()
		li.add("a");
		li.add("b");
		li.add("c");
		li.add("d");
		//使用add(index E),在指定索引位置插入元素
		li.add(8, "x");
		System.out.println(li);
	}

}

      运行之后,会报异常: java.lang.IndexOutOfBoundsException,只要插入的索引小于等于集合的size(),也就是最多在末尾元素插入一个新元素,再往后插入就出索引越界异常。

2. E remove(int index)

      这个方法和上面介绍的根据索引添加元素刚好相反,是根据索引删除元素,返回的是被删除的元素。

package list;

import java.util.ArrayList;
import java.util.List;

public class Demo1_List {

	public static void main(String[] args) {
		List li = new ArrayList();
		// 添加元素,使用add()
		li.add("a");
		li.add("b");
		li.add("c");
		li.add("d");
		//根据指定索引删除元素
		Object ob1 = li.remove(1);  //通过索引删除元素,将被删除的元素返回
		System.out.println(ob1);
		System.out.println(li);
	}

}

运行:

b
[a, c, d]
3.E get(int index)

根据索引返回元素,类型是任意对象。

import java.util.List;

public class Demo1_List {

	public static void main(String[] args) {
		List li = new ArrayList();
		// 添加元素,使用add()
		li.add("a");
		li.add("b");
		li.add("c");
		li.add("d");
		//根据指定索引返回元素
		Object ob1 = li.get(2);
		System.out.println(ob1);
	}
}

输出:c

      通过索引来获取元素,这个很容易让我们想起查字典的场景,还有一种场景也可以利用这个方法,那就是遍历索引元素。自己写一个for循环,然后通过get(Index)方法来遍历List集合元素。

4.set(int index , E element)

这个方法是将指定位置的元素进行修改值。

package list;

import java.util.ArrayList;
import java.util.List;

public class Demo1_List {

	public static void main(String[] args) {
		List li = new ArrayList();
		// 添加元素,使用add()
		li.add("a");
		li.add("b");
		li.add("c");
		li.add("d");
		//将索引为2的元素修改成X
		li.set(2, "x");
		System.out.println(li);
	}

}
运行输出:[a, b, x, d]


5.用List方法遍历自定义对象

这里继续利用到前面的Student.java

package list;

import java.util.ArrayList;
import java.util.List;

import collection.Student;

public class Demo1_List {

	public static void main(String[] args) {
		List li = new ArrayList();
		// 添加元素,使用add()
		li.add(new Student("张三", 23));
		li.add(new Student("李四", 24));
		li.add(new Student("王五", 25));
		li.add(new Student("刘六", 26));
		li.add(new Student("小七", 27));
		
		// 通过get(index)遍历
		for(int i=0; i<li.size(); i++) {
			//将Object对象向下转型为Student对象
			Student s = (Student)li.get(i);
			//拿到学生姓名和年龄
			System.out.println("Name: "+s.getName()+"...Age: "+ s.getAge());
			
		}
		
	}

}

输出:

Name: 张三...Age: 23
Name: 李四...Age: 24
Name: 王五...Age: 25
Name: 刘六...Age: 26
Name: 小七...Age: 27


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值