List接口(未完待续)
List接口
List集合代表一个有序集合,集合中的每个元素都有其对应的顺序索引。
List集合允许使用重复元素,可以通过索引来访问指定位置的集合的元素。List集合默认按元素的添加顺序设置元素的索引,第一次添加的元素的索引是0,接下来依次为1,2。。。
List作为Collection接口的子接口,可以使用Collection接口内的全部方法,而且由于List是有序集合,因此List集合增加了一些根据索引来操作集合元素的方法:
void add(int index,Object element):将元素element插入list集合的index处。
boolean addAll(int index,Collection c):将集合c所包含的所有元素都插入在List集合的index处。
Object get(int index):返回集合index索引处的元素。
int indexOf(Object o):返回对象o在List集合中出现的位置索引
int lastIndexOf(Object o):返回对象o在List集合中最后一次出现的位置的索引。
Object remove(int index):删除并返回index索引处的元素。
Object set(int index,Object element):将index索引处的元素替换成element对象,返回新元素。
List subList(int fromIndex,int toIndex):返回从fromIndex(包含)到索引toIndex(不包含)处所有集合元素组成的子集合。
以上方法,所有List的实现类都可以调用这些方法来操作集合。
举例如下:
package day0213;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
public class TestList {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
java.util.List<String> l1=new ArrayList<String>();
l1.add("中国");
l1.add("香港");
l1.add("澳门");
l1.add("台湾");
l1.add("香港");
l1.add("的");
l1.add("母亲");
System.out.println("l1集合中的元素有:"+l1);
//在索引1前面插入元素”是“
l1.add(1, "是");
System.out.println("l1集合中的元素有:"+l1);
//获得索引是2的元素的值
System.out.println("索引为2的元素是:"+l1.get(2));
//获得元素是”台湾“的值的索引
System.out.println("元素是台湾的索引是:"+l1.indexOf("台湾"));
//获得该集合中最后一次出现”香港“这个元素的索引
System.out.println("最后一次出现”香港“这个元素的索引是:"+l1.lastIndexOf("香港"));
//删除索引是5的元素
System.out.println(l1.remove(5));
System.out.println("l1集合中的元素有:"+l1);
//将索引值是6处的元素替换成新的元素”妈妈“
System.out.println(l1.set(6, "妈妈"));
System.out.println("l1集合中的元素有:"+l1);
//获得从索引2至索引5的子集合
System.out.println(l1.subList(2, 5));
Collection<String> c1=new HashSet<String>();
c1.add("上海");
c1.add("江苏");
c1.add("浙江");
//将集合c1中的元素全部添加到集合l1索引为0的位置
l1.addAll(0, c1);
System.out.println("l1集合中的元素有:"+l1);
//遍历集合
for (int i = 0; i < l1.size(); i++) {
System.out.print(l1.get(i)+" ");
}
}
}
运行代码得到:
l1集合中的元素有:[中国, 香港, 澳门, 台湾, 香港, 的, 母亲]
l1集合中的元素有:[中国, 是, 香港, 澳门, 台湾, 香港, 的, 母亲]
索引为2的元素是:香港
元素是台湾的索引是:4
最后一次出现”香港“这个元素的索引是:5
香港
l1集合中的元素有:[中国, 是, 香港, 澳门, 台湾, 的, 母亲]
母亲
l1集合中的元素有:[中国, 是, 香港, 澳门, 台湾, 的, 妈妈]
[香港, 澳门, 台湾]
l1集合中的元素有:[上海, 浙江, 江苏, 中国, 是, 香港, 澳门, 台湾, 的, 妈妈]
上海 浙江 江苏 中国 是 香港 澳门 台湾 的 妈妈
List集合可以使用普通的for循环来遍历集合元素。
问题1:List集合如何判断两个对象相等?
答:只要通过equals方法比较返回ture即可。
注意点:当调用List的set(int index,Object element)方法来改变List集合指定索引处的元素时,指定的索引必须是有效索引!set方法不会改变List集合的长度。