邂逅Java集合框架
时间:2015-06-16 14:44:14
收藏:0
阅读:160
Java集合框架是Java语言的重要组成部分,它包含了系统而完整的集合层次体系,封装了大量的数据结构的实现,深刻理解Java集合框架的组成结构及其中的实现类和算法,可以极大的提高程序员编码的能力。
一、概念
又称容器,是一个对象,能将具有相同性质的多个元素汇集成一个整体。集合框架被用于存储,获取,操纵和传输聚合的数据。
二、成员介绍
如下图,Java平台提供了一个全新的集合框架,其核心接口是Collection、List(列表)、Set(集合)和Map(映射)。由图可知,Collection是集合继承树中最顶层的接口,容器几乎都要实现该接口。

集合、列表、映射三种结构:
List:无序的,没有重复项目的集合
LIST:有序的,可以重复的
MAP:关键字与数值对,关键字是唯一标示不能重复,数据可以重复。

三、ArrayList类
是对AbstractList类的扩展,支持可随需要而增长的动态数组。在Java中标准的数组是订场的,他们被创建之后,就不能被加长或缩短,也就意味着开发者必须先知道数组可以容纳多少元素。一般情况下,只有在运行时才能知道需要多大的数组,为了解决这个问题,类集框架定义了ArrayList,它能够动态地增加或减少其大小。
Eg1:
import java.util.*; public class Test{ public static void main(String[] args){ Collection c=new ArrayList(); c.add("hello"); c.add(new Name("f1","11")); c.add(new Integer(100)); System.out.println(c.size()); System.out.println(c); } }

四、HashSet类
Set集合是一种不包含重复元素的Collection。是对AbstractSet类的扩展,它创建了一个类集,该类集使用散列表进行存储,而散列表则通过使用称之为散列法的机制来储存信息。在散列中,一个关键字的信息内容被用来确定唯一的一个值,称为散列码,它被用来当做与关键字相连的数据的存储下标。
Eg2:
import java.util.*; public class BasicContainner{ public static void main(String[] args){ Collection c=new HashSet(); c.add("hello"); c.add(new Name("f1","11")); c.add(new Integer(100)); c.remove(new Integer(100)); System.out.println(c.remove(new Name("f1","11"))); System.out.println(c); } } class Name{ private String firstName,lastName; public Name(String firstName,String lastName){ this.firstName=firstName; this.lastName=lastName; } public String getFirstName(){return firstName;} public String getLastName(){return lastName;} public String toString(){return firstName + " " + lastName;} public boolean equals(Object obj){ if(obj instanceof Name){ Name name=(Name) obj; return(firstName.equals(name.firstName))&&(lastName.equals(name.lastName)); } return super.equals(obj); } public int hashCode(){ return firstName.hashCode(); } }
注意:
1、重写equal也要重写hashCode方法
2、当对象用作索引的时候,使用hashCode方法
五、HashMap类
首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。HashMap类基于哈希表的
Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。在HashMap中通过get()来获取value,通过put()来插入value,ContainsKey()则用来检验对象是否已经存在。可以看出,和ArrayList的操作相比,HashMap除了通过key索引其内容之外,别的方面差异并不大。
Eg3:
import java.util.*; public class MyHashMap{ public static void main(String[] args){ HashMap hm=new HashMap(); hm.put(1,'Z'); hm.put(2,'H'); hm.put(3,'O'); hm.put(4,'U'); System.out.print("添加元素后结果为:"); System.out.println(hm); hm.remove(3); hm.put(2,"替换"); System.out.print("删除和替换元素后的结果:"); System.out.println(hm); } }
六、小结
这篇博客主要介绍了一下集合框架的概念、集合框架接口,以及列表、集合、映射三种结构。还需要在以后的运行中加强对集合框架的理解。
原文:http://blog.csdn.net/zhou2s_101216/article/details/46516147
评论(0)