java集合ppt_Java集合课件.ppt
教学⽬标
了解集合框架的接⼝以及实现类。
掌握ArrayList、Vector以及HashMap等常见集合实现类的⽤法。
了解如何利⽤泛型存取数据。
前⾔
在编程时常常需要集中存放多个数据,我们可以⽤数组来保存多个对象,但数组长度不可变化,⼀旦在初始化数组时指定数组长度,则这个数组长度是不可变的,如果需要保存个数变化的数据,数组则⽆能为⼒,⽽且数组⽆法保存具有映射关系的数据,如成绩表:语⽂-87,数学-89,这种数据看上去像两个数组,但这两个数组元素之间有⼀定的关联关系。
前⾔
为了保存数量不确定的数据,以及保存具有映射关系的数据(也称为关联数组),Java提供集合类。集合类主要负责保存、盛装其他数据,因此集合类也称为容器类。所有集合类都位于java.util包下。
集合类和数组不⼀样,数组元素既可以是基本类型的值,也可以是对象(实际上保存的是对象的引⽤变量);⽽集合⾥只能保存对象(实际上也是保存对象的引⽤变量)。
集合
集合:类似于数组,是存放对象的聚集。集合对象中存放的是⼀组对象。换句话说,集合中的存放的元素是对象。
集合
集合中接⼝决定了集合API中各个类的基本特性。具体类仅仅是提供了标准接⼝的不同实现。
集合API中的接⼝和类主要位于java.util包中;
最基本的接⼝是Collection接⼝,该接⼝定义了操作数据的基本⽅法.
位于集合框架层次结构顶层的 Collection接⼝是集合框架的基础,它声明了所有集合类都有的核⼼⽅法。Collection接⼝有2个直接扩展的⼦接⼝:List和Set。
不按顺序保存元素,不可重复
按顺序保存元素,可重复
集合框架中的实现类
Collection接⼝
Collection接⼝重要的⽅法有:
public boolean add(Object obj);
//将对象obj加⼊到当前集合对象中
public boolean addAll(Collection c);
//将集合c中的元素加⼊到当前集合对象中
public void clear();
//清除当前集合中的所有元素
public boolean contains(Object obj);
/
/判断当前集合中是否包含obj对象
public Iterator iterator();
//得到当前集合的迭代器
public boolean remove(Object obj);
//删除当前集合中的obj对象
java入门课件public int size();
//得到当前集合中元素的总数
public boolean isEmpty();
//判断当前集合是否为空
public Object[] toArray();
//将当前集合对象转化成对象数组
注意:
集合类中的许多⽅法的参数都是Object类型。
Set接⼝
Set中的元素必须唯⼀。不允许有重复的元素。不重复是指集合中任意2个对象x和y,x.equals(y)始终为false。
实现了Set接⼝的类主要有:
AbstractSet:所有Set的实现类都直接或者间接继承AbstractSet⽗类。
HashSet:内部使⽤⼀个哈希表来实现Set集合,并允许存放null元素。不保证元素的排列顺序,顺序有可能发⽣变化。在编程中常常使⽤该类。
LinkedHashSet:既有 HashSet 的查询速度,⼜能保存元素被加进去的顺序去(插⼊顺序)。
HashSet
HashSet的构造函数如下:
HashSet( ) //构造⼀个空 set。
HashSet(Collection ?c) //构造⼀个包含指定 collection 中的元素的新 set。
例:SetDemo.java
注意:
输出结果中集合⾥的元素没有按照顺序排序。既没有按照输⼊顺序,也没有按照⾃然顺序。
输出结果中没有重复元素。如字符串3就没有重复的。但是1有重复的,原因是这⾥的1是2个对象,字符串型的和基本数据类型的包装类Integer类型的。
基本数据类型要插⼊进去需要使⽤我们上节课介绍的基本数据类型的包装类。
向上转型的好处:如果以后我们不⽤HashSet,改⽤LinkedHashSet或其他,那么我们只需要将如下语句:
Set set=new HashSet();
改为:
Set set=new LinkedHashSet();
实现改变了,编程改动的⼯作量较⼩。应当培养这种良好的⾯向对象的编程习惯。
Set接⼝有⼀个⼦接⼝SortedSet,SortedSet中的元素可以保证处于排序状态,⼀个直接应⽤类TreeSet。
例:treesetDemo.java

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。