(二十一)持有对象以及泛型基础(1)

一、泛型

  •   泛型一般结合集合类又叫容器类(Colletion)来使用。
ArrayList<String> nameList=new ArrayList<String>();

 上述语句含义:ArrayList集合的子集只能是String类型的。

  • 泛型的类型可以向上转型。
  • public class 泛型 {
    /**
     * 泛型
     */
    	public static void main(String[] args) {
    		ArrayList<Person> list=new ArrayList<Person>();
    		list.add(new Teacher("s001"));
    	}
    }
    class Person{
    	String name;
    	int age;
    }
    
    class Teacher extends Person{
    	String ID;
    	Teacher(String id){
    		ID=id;
    		System.out.println(ID);
    	}
    }
    结果:
    s001

    解析:list里能容纳Person类型的对象,其中Person的子类Teacher也可以被视为Person类所以也能被容纳进去。



二、容器类的基本概念

 

  •   java容器类的作用是“保存对象”,可分为:

  1.Colletion:Collection是最基本的集合接口,List:“有序” ,Set:"唯一",

  2. Map:接口,一组成对的“键值对”对象,允许你使用键来查找值。

  • java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。
    java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。
  • 所有通用的 Collection 实现类(通常通过它的一个子接口间接实现 Collection)应该提供两个“标准”构造方法:一个是 void(无参数)构造方法,用于创建空 collection;另一个是带有 Collection 类型单参数的构造方法,用于创建一个具有与其参数相同元素新的 collection。实际上,后者允许用户复制任何 collection,以生成所需实现类型的一个等效 collection。

  2.1 添加一组元素

  • java.util包中的Arrays和Colletions类中有很多方法可以在一个Colletion中添加一组元素。

    1.Arrays.asList()方法接受一个数组或者是一个用逗号分隔的元素列表(使用可变参数),并将其转换为一个List对象。

public class Text {
	public static void main(String[] args) {
				//Arrays.asList()用法
				String[] name={"张三","李四"};
				List<String> nameList=Arrays.asList(name); //使用这种方法得到的List对象nameList不能使用add()方法和remove()方法,除非确定Lis对象长度不再改变否则慎用。
				System.out.println(nameList.get(0));
				
				List<Integer> intList =new ArrayList<Integer>(Arrays.asList(1,2,3));  //Colletions构造器可以接受另一个Colletion用它来初始化,asList()获得一个List对象,向上转型为Colletion类型并作为ArrayList构造器的参数初始化。
				System.out.println(intList.get(1));
				intList.add(4);   //正常使用add()
				System.out.println(intList.get(3));

	}
}
结果:
张三
2
4

 解析:List<String> nameList=Arrays.asList(name); 中name可以直接用“"张三","李四"”取代。

 

    2.Colletions.addAll()方法接受一个Colletion对象,以及一个数组或者是一个用逗号分隔的列表,将元素添加到Colletion中。

public class Text {
	public static void main(String[] args) {

		List<String> name=new ArrayList<String>();
		System.out.println(name.size());
		Collections.addAll(name, "李四","王五");
		System.out.println(name.size());
	}
}

 解析:addAll()方法将所有指定元素添加到指定 collection 中。

 

posted @ 2017-02-18 14:26  shyroke、  阅读(178)  评论(0编辑  收藏  举报
作者:shyroke 博客地址:http://www.cnblogs.com/shyroke/ 转载注明来源~