07.集合和泛型

一.集合框架概述

Java集合框架都位于Java.util包中java

Java集合框架能够包含三大块内容,对外接口,接口的实现,对集合运算的算法算法

Set、List和Map能够看作集合的三大类:

List集合是有序集合,集合中的元素能够重复,访问集合中的元素能够根据元素的索引来访问。编程

Set集合是无序集合,集合中的元素不能够重复,访问集合中的元素只能根据元素自己来访问。数组

Map集合中保存Key-value对形式的元素,访问时只能根据每项元素的key来访问其value。框架

接口

表示集合的抽象数据类型,例如Collection,List,Set,Map等工具

实现

集合框架中的接口具体实现,例如ArrayList,HashSet,HashMap等this

算法

在实现了集合框架接口的对象身上完成计算的方法。Java提供了集合框架的工具类Collections,它实现了对集合排序的多种算法。code

二.List接口

ArrayList对数组进行了封装,实现了可变长数组,采用和数组相同的储存方法。对象

LinkedList采用链表储存方式。blog

ArrayList

import Java.util.List;
import java.util.ArrayList;
puoblic class ListDemo{
	public static void main(String [] args){
        List list = new ArrayList();
		for(int i=0;i<3;i++){
			list.add("Hello");
		}
		String a = (String)list.get(0);
	}
}
//List集合定义时不须要指定大小,也不用指定集合中保存的数据类型
//List接口的add(Object o)方法的参数类型为Object,即便调用时传入其余类型,但系统认为是Object类型,因此用get方法获取元素是必须进行强制类型转换
//获取List集合的元素时使用get方法并传入下标,而后强制转化为实际类型
//使用remove,contains,indexOf等方法时应该重写类的equals方法

三.迭代器iterator

全部集合接口和类都没有提供相应都遍历方法,而是把遍历交给迭代器Iterator完成。它隐藏了各类集合实现类的内部细节,提供了遍历集合的统一编程接口。

Collection接口的iterator()方法返回一个Iterator。

//Iterator接口两个方法
boolean hasNext()//判断是否存在另外一个可访问的元素
Object next()//返回要访问的下一个元素

四.泛型集合

泛型有效的解决了上面提到的集合的add()方法的弊端,使用泛型集合在建立集合对象时指定集合中元素的类型,从集合中取出元素时无需进行强制类型转换,而且若是把非指定类型对象放入集合,会出现编译错误。

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

public class m1 {
    public static void main(String [] args){
        Student stu1 = new Student("Tom",10);
        Student stu2 = new Student("Aim",11);
        //泛型集合
        List<Student> list = new ArrayList<Student>();
        list.add(stu1);
        list.add(stu2);
        //get()方法不须要再强制类型转换
        Student student = list.get(1);
        System.out.println("学生2:" + student.getName() + "\t" + student.getAge());
    }

}
class Student{
    String name;
    int age;
    public String getName(){
        return name;
    }
    public int getAge(){
        return age;
    }
    public Student(String name,int age){
        this.name = name;
        this.age = age;
    }
}
相关文章
相关标签/搜索