Java 集合框架学习

来源:互联网 发布:java 捕获异常后抛出 编辑:程序博客网 时间:2024/05/16 16:16

15-9-21集合框架 一

Arraylist以线性表实现,Java集合框架能跟有效的组织和操作数据,一种数据结构也被认为是一个容器(容器对象),它是一个能存储其他对象(如数据和元素)的对象。

定义一种数据结构从本质上讲是定义一个类。数据结构类赢使用数据域存储数据,并提供方法支持查找、插入和删除等操作。

1、       集合

Java集合框架支持三种主要类型的集合:规则集(set)、线性表(list)、队列(queue)。Set用于存储一组不重复的元素。List用于存储一个由元素构成的有序集合,Queue用于存储用先进先出方式处理的对象 。

Collection接口是处理对相机和的根接口,AbstractCollection类是提供Collection接口部分实现的便利类(没有实现size和iterator方法)。

方法:

add():给集合添加一个元素

addAll():把指定集合的所有元素添加到这个集合中

remove():删除集合中的元素

removeAll():从这个集合中删除指定集合的所有元素

retainAll():保留即两个集合的交集

上述方法的返回值都是boolean类型,如果执行方法后会改变原有集合则返回true

size():返回集合中元素的个数

contains():检测集合中是否包含指定元素

containsAll():检测集合是否包含指定集合的所有元素

isEmpty():集合是否为空

toArray():返回一个表示集合的数组

Iterator接口提供了对不同类型集合中的元素进行遍历的同一方法

iterator():返回Iterator接口的一个实例

       next():顺序访问集合中的所有元素

       hasNext():检测迭代器中是否还有更多的元素

       remove():删除从迭代器返回的最后一个元素

2、       规则集

Set接口扩展了Collection接口。AbstractSet类是一个便利类,它扩展AbstractCollection类并实现Set接口。AbstractSet类提供equals()和hashCode()的具体实现。一个规则集的散列码是这个所有元素散列码的和。

由于AbstractSet类没有实现size()和iterator()方法,所以,AbstractSet类是一个抽象类。

Set接口的三个具体类:散列类HashSet、链式散列集LinkedHashSet、树形集TreeSet

2.1 散列集HashSet

       HashSet类是一个用于实现Set接口的具体类,可以使用它的无参构造方法创建空的散列集,也可以由一个现有的集合创建散列集。默认情况下,初始容量为16而客座率是0.75

       客座率测量在增加规则集的容量之前,该规则集的饱满程度。比较高的客座率会降低空间开销,但会增加查找时间。通常情况下,默认的客座率为0.75,它是在时间开销和空间开销上一个很好的权衡。

       HashSet类可以用来存储互不相同的任何元素。考虑到效率的因素,添加到散列集中的对象必须以一种正确分散散列码的方式来实现hashCode方法。根据Object类中定义的hashCode方法,如果两个对象相等,那么这两个对象的散列码必须一样。两个不相等的对象可能会有相同的散列码,因此你应该实现hashCode方法一避免出现太多这样的情况。Java API中大多数类都实现了hashCode方法,Integer类中的hashCode返回它的int值,Character类中的hashCode方法返回这个字符的统一码,String类的hashCode

 

 

 

0 0
原创粉丝点击