关于List常见使用方式

来源:互联网 发布:c语言的最大公约数 编辑:程序博客网 时间:2024/06/16 03:03
 1.java List<T> 和 List<E> 有啥区别啊! 不都是泛型吗?  答:没有区别,T和E都是泛型变量名,你可以用任意合法的名字命名,比如K,ABC,abc都是合法的。   List<T> 表示 集合里 是 T类的实例   List<E> 表示 集合里 是 E类的实例   List<?> 表示 集合里的对象类型不确定,未指定   List 同 List<?>  泛型的作用:  (1). List<T> list=new ArrayList<T>();       T t=list.get(0);  (2).List list=new ArrayList();      T t=(T)list.get(0);  相信你已经看出:用泛型只是确定了集合内的元素的类型,取出来时已经不再需要强转
2.List如何实例化,常用方法有哪些?
实例化:List[<数据类型>] list = new ArrayList[<数据类型>]();
获得集合内元素个数:list.size();

添加元素:
默认添加:list.add(e);
指定下标添加(添加后下标后的元素向后挪一位):list.add(index,e);

删除元素:
返回是否删除:list.remove(e);
直接删除指定下标的元素(只删除找到的第一个相符合的元素):list.remove(index);

替换元素(替换掉指定下标的元素):list.set(index,e);

取出元素:list.get(index);

清空集合:list.clear();

判断集合中是否存在某个元素(存在返回true,不存在返回false):list.contains(e);

对比两个集合中的所有元素:
两个对象一定相等:list.equals(list2);
两个对象不一定相等:list.hashCode() == list2.hashCode();
(两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象。)

获得元素下标:
元素存在则返回找到的第一个元素的下标,不存在则返回-1:list.indexOf(e);
元素存在则返回找到的最后一个元素的下标,不存在则返回-1:list.lastIndexOf(e);

判断集合是否为空(空则返回true,非空则返回false):list.isEmpty();

返回Iterator集合对象:list.iterator();

将集合转换为字符串:list.toString();

截取集合(从fromIndex开始在toIndex前结束,[fromIndex,toIndex)):list.subList(fromIndex,toIndex);

将集合转换为数组:
默认类型:list.toArray();
指定类型(objects为指定类型的数组对象,并将转换好的数组赋值给objects数组):list.toArray(objects);

以上为List常用的方法。下面这个链接也可以参考一下:http://hi.baidu.com/ipvsadm/item/e57a9c0fc900ea8b03ce1bed
3.如何循环变量list中的元素?
  1. package com.test; 
  2.  
  3. import java.util.ArrayList; 
  4. import java.util.Iterator; 
  5. import java.util.ListIterator; 
  6.  
  7. import java.util.List; 
  8.  
  9.  
  10.  
  11. public class Test { 
  12.  
  13.     public static void main(String[] args){ 
  14.          
  15.         Cat cat=new Cat("忍着猫"); 
  16.         Human human=new Human("超人"); 
  17.         Dog dog=new Dog("旺财"); 
  18.         System.out.println(dog.toString()); 
  19.          
  20.         List list = new ArrayList(); 
  21.         list.add(dog); 
  22.         list.add(cat); 
  23.         list.add(human); 
  24.         //Iterator it = list.iterator(); 
  25.         ListIterator it2=list.listIterator(); 
  26.         while (it2.hasNext()) { //循环遍历
  27.             Object object = (Object) it2.next(); 
  28.             if(object instanceof Dog){ 
  29.             System.out.println(  ((Dog) object).Do("啃骨头")); 
  30.             System.out.println(((Dog) object).toString()); 
  31.             } 
  32.             if(object instanceof Cat){ //判断当前object是否是Cat类的实例
  33.             System.out.println( ((Cat)object).Do("爱吃鱼")); 
  34.             } 
  35.             if(object instanceof Human){ 
  36.                 System.out.println(((Human)object).Do("啥都会")); 
  37.             } 
  38.              
  39.         } 
  40.          
  41.     }