Java集合类框架学习

一.Java集合类概述

1.集合类:为了保存数量不确定的数据,以及具有映射关系的数据(关联数组)。集合类主要负责保存和盛装其他数据,因此集合类又叫做容器类。

2.集合类与数组的区别:

① 集合类中的数据数量不确定,而数组中数据的数量确定。

② 数组中的数据既可以是基本数据类型,又可以是对象。而集合类中只能保存对象。

3.Java集合框架的根接口:Collection和Map

Map保存的的每一项数据都是一个key-value对,其中key是不重复的。

二.Collection接口和Iterator接口

1.Collection接口

add,addAll,clear,contains,containAll,,remove,removeAll,size,isEmpty,toArray,iterator,re-tainAll等

2.Iterator接口

Iterator对象被称为迭代器,用于遍历集合中的元素。

三个方法:hasNext,next,remove

注意:

① 使用Iterator对集合元素进行迭代时,并不是把集合元素本身赋给迭代变量,而是把集合元素的值赋给迭代变量,所以修改迭代元素的值对于集合不会有任何影响。

② 使用Iterator对集合元素进行迭代时,集合元素不能被改变(Iterator的remove方法除外),否则会产生异常。

3.foreach循环

利用foreach循环也可以遍历集合中的元素。

与Iterator注意的两点相同。

三.Set接口

Set集合类似于一个罐子,其中的元素无序且不相等。Set集合判断两个元素是否相等是根据equal方法,而不是根据“==”来判断。

1.HashSet类

HashSet是根据哈希算法来存取集合中的元素。

HashSet集合判断两个元素相等的标准是:通过equals方法比较两个对象相等,并且hashCode方法的返回值也相等。

注意:

① 如果一个类重写equals方法,那么相应的也要重写hashCode方法。规则是:如果两个对象通过equals方法比较返回true,那么它们的hashCode方法的返回值也应该相同。

② 当向HashSet集合中添加可变对象时要格外注意,因为通过对可变对象的修改可能会导致HashSet集合中的两个元素完全相同,但是又处于不同的位置,从而导致HashSet集合无法准确的访问该对象。

LinkedHashSet类,是HashSet的子类,与HashSet类不同的是,它通过链表维持集合中元素的顺序,使得集合中的元素看起来时按照插入顺序保存的。

2.TreeSet类

继承了SortedSet接口,确保集合中的元素处于排序状态。

与HashSet类相比增加了如下几个方法:

first,last,lower,higher,subset,headSet,tailSet,comparator

TreeSet并不是按照元素的插入顺序进行排序,TreeSet支持两种排序算法:自然排序和定制排序。

大海,别为森林的渺小而沮丧,

Java集合类框架学习

相关文章:

你感兴趣的文章:

标签云: