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集合的长度。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2012-02-15 17:02  左林右佘  阅读(198)  评论(0编辑  收藏  举报