java Collection

1.认识类集
如果想保存多个对象,通常使用对象数组完成,但是对象数组本身存在一个大问题----其数据的长度是不能更改的,所以以后采用了链表完成动态对象数组开发,在考虑开发时数据会频繁地使用,所以引入了集类的概念,集类是一种动态的对象数组,属于各个数据结构的实现类,整个集类的主要组成是一些核心的操作接口:Collection 、List、Set、Map、Iterator、Enumeration.

2.单值保存的最大符接口: Collection
所谓的单值保存指的是每一次操作只会保存一个对象,就好像之前链表程序一样,每次只保存一个对象,在Collection接口中定义下面这些常用操作方法:
Collection接口中共定义了15个方法,在所有方法中,最常用的两个方法为:add()和iterator().不过从开发将,很少会直接使用Collection.

一般使用Collection的两个子接口: List和Set.

List接口使用最多,所以在选择时优先考虑List接口,而Set接口使用起来会有许多限制,所以只在必须使用时使用.
在这里插入图片描述

3.允许重复的子接口:List
List是Collection的一个最为常用的子接口,这个接口的定义如下:

public interface List<E> extends Collection<E>

List接口直接继承了Collection接口,但是List接口对Collection接口进行大量扩充,扩充后如下图:
在这里插入图片描述
上面3个方法只是针对List接口起作用,List接口有两个常用子类:ArrayList和Vector.

4.新的子类:ArrayList
ArrayList是List子接口使用最多的一个子类,此类定义如下.

public class ArrayList<E>
extends AbstractList<E>
implements List<E>,RandomAccess,Cloneable,Serializable

使用ArrayList进行List接口的功能验证.
在List集合中可以存在重复数据,也可以正常保存,而且数据保存的顺序就是存入数据的顺序.
JKD1.7简化
List all=new ArrayList<>();
在这里插入图片描述
通过Vector为List接口实例化.
所有操作都是针对接口完成的,只要接口定义的方法不变,子类课意义更改
在这里插入图片描述
ArrayList和Vector的区别.
开发异步程序,首先ArrayList子类.
在这里插入图片描述
5.不允许重复的子接口:Set
set也是Collection较为常见的子接口,这个接口定义:

public interface Set<E> extends Collection<E>

在Collection接口定义了15个方法,但是Set接口并不像List接口那样对Collection接口进行了大量扩充,而是完整地继承下来,就证明Set接口中肯定无法使用get()方法取得指定索引的数据的,那么Set接口常用的两个子类为HashSet和TreeSet,下面进行说明.

5.1散装存放的子类:HashSet
HashSet使用一种散列(无序)的方式保存集合数据,下面通过代码观察使用.
在使用Set集合保存数据时,通过输出结果可以发现,集合中重复的数据并没有被保存,而保存的数据也是无序的.
在这里插入图片描述

5.2排序存放的子类:TreeSet
如果希望Set集合中保存的数据有数据,那么通过TreeSet进行Set接口实例化.
使用TreeSet保存数据.
我们可以发现集合中没有重复数据,并且按照数据的大小顺序保存数据了.
在这里插入图片描述
6.集合的输出操作
前面都属于单值集合的基本操作,集合还有一个最为重要的问题就是如何进行集合内容的输出操作,这个问题在java的类集框架给出4中输出方式:Iterator、ListIterator、Enumeration和foreach.

迭代输出:Iterator
Iterator是专门的迭代输出接口,所谓的迭代输出就是对元素进行判断,判断其是否有内容,如果有内容则把内容取出.
此接口在使用是也需要指定泛型,当然在此处指定的泛型最好与集合中的泛型一致,此接口定义3个方法.
在这里插入图片描述
怎么取得Iterator接口实例化对象呢?这一操作在Collection接口就已经明确定义了,因为Collection继承一个Iterable接口,在这个接口中定义了"public Iterator irerator",方法,直接使用就可以了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值