码迷,mamicode.com
首页 > 编程语言 > 详细

邂逅Java集合框架

时间:2015-06-16 14:46:40      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:java   容器   

    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);
	}
}

技术分享

六、小结


   这篇博客主要介绍了一下集合框架的概念、集合框架接口,以及列表、集合、映射三种结构。还需要在以后的运行中加强对集合框架的理解。


邂逅Java集合框架

标签:java   容器   

原文地址:http://blog.csdn.net/zhou2s_101216/article/details/46516147

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!