文档介绍:本章内容很重要,以后的学习以及工作中都会经常应用到。重点是掌握用几个常用的集合接口和类来操纵集合里的数据。至少需要掌握ArrayList TreeSet HashMap(HashTable)以及它们的特性,和对Swing组件的学习一样,要注意总结规律,总结添加元素,删除元素,获得元素(遍历)的通用方法和一些特殊的方法
什么是集合?
将多个对象合在一起变成一个统一的对象,然后通过这个统一的对象来实现对多个对象的管理(存储,检索,操作,传输数据)。在数组里要进行这样的操作,可以会写很多算法,但在集合里,只需要调用其中的方法就可以了。集合也可以对其中的元素进行操纵,增加、删除、更改。同时,我们可以把存储之后的数据用于传输。这体现了JAVA里的封装思想。我们利用集合的功能特点,把我们对底层数据的操作封装起来,这样可以让程序的主要精力放在业务处理上,而不是对底层数据的操作上。
为什么要用集合?数组不能动态改变长度,操作不方便
什么是集合框架?Java Collection Framework (JCF)
–提供用于管理对象集合的接口和类
–包括接口、实现和算法
了解集合框架的具体优点并通过以后的代码能够深刻认识
u减少编程工作量- 它可以提供有用的数据结构和算法,从而使程序员不必自己编写。
u提高性能- 它可以提供有用的数据结构和算法的高性能实现。因为每个接口的不同实现是可以互换的,所以可通过交换实现方便地调整程序。并且集合算法是经过验证的,所以效率也是很高的。
u实现无关 API 间的互操作- 它可以建立一种公用语言,用于来回传递。在前面我们知道通过一个方法可以实现一个对象传递,但如果是一组对象传递怎么办呢?就可以使用集合进行传递,先把对象放在集合中,再把对象作为传输。
u减少学习 API 所需的劳动- 用户没有必要学习多个不同的集合 API。因为集合框架实现了继承关系,所有有很大一部分共性。
u减少设计和实现 API 所需的工作量- 没有必要生成多个不同的集合 API。
u有助于软件重用- 提供集合与算法的标准接口,便于对其进行操作
集合和数组的区别:
集合只能放置对象,数组中可以是对象数组,也可以是基本数据类型数组。
数组只能放置同一种数据类型,对于集合而言,里面元素可以是不同类型的元素
集合对象长度可以随着元素的多少发生变化,而数组一旦指定了容量,长度就不能发生改变。
集合中提供了很丰富的算法方法,而数组里的方法很有限。采用集合对数据的操纵会很容易。
。
3-----代表要做什么
Collection是上级接口 List
3-----代表怎么去做
主要掌握图中黑线的
3-3. 算法类
对集合元素的遍历(将集合里的元素一个个地取出来)::Iterator
常用算法操作:Collections Arrays 比较器
集合框架都有一个初始长度:ArrayList、Vector都是10。HashSet、HashMap 是16。
在集合中可以放置任何数据类型的对象。在取出来的时候,都会是一个Object类型。
添加:void add
//将元素添加到集合中
Collection con=new ArrayList();//集合接接口不能直接实例化,必须指向一个实现了接口的类对象。
(“abc”)//加入元素至集合
。这样集合允许书写加入基本数据类型。在加入之前先将基本数据类型转为相对应的包装类,再做添加。
(1);//(new Integer(1));
元素是否存在:boolean contains
使用这个方法可用于判断当前元素是否在集合中已经存在。使用时要注意,因为用于判断时默认是判断当前这个对象是否存在,是通过equals()方法进行比较,默认是比较地址。如果是内容的比较,则需要重写equals()方法。
public class Student {
private int id;
private String name;
Student(int id,String name){
=id;
=name;
}
public static void main(String[] args){
ArrayList list=new ArrayList();
(new