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

8.0Java集合类

时间:2017-05-26 11:55:59      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:iter   rem   恢复   根据   --   删除   返回   保存   适合   

---恢复内容开始---

  集合可以看做是一个容器,如红色的衣服可以看做是一个集合、所有Java类的书可以看做是一个集合。对于集合中的各个对象很容易将其存放到集合中,也很容易将其从集合中取出来,还可以将其按照一定的顺序摆放。Java中提供了不同的集合类,这些类具有不同的存储对象的方式,并提供了相应的方法方便用户对集合进行遍历、添加、删除以及查找指定的对象。一定要学会使用集合。

集合类概述

  Java语言的Java.util包中提供了一些集合类,这些集合类又被称为容器。提到容器不难会想到数组,集合类与数组的不同之处是,数组的长度是固定的,集合类的长度是可变的;数组用来存放基本类型的数据,集合用来存放对象的引用。常用的集合有List集合、set集合、map集合,其中list与set实现了collection接口。各接口还提供了不同的实现类。上述集合类的继承关系:

  技术分享

集合类接口的常用方法

  Collection接口是层次结构中的根接口。构成collection的单位,称之为元素。collection接口通常不能直接使用,但该接口提供了添加和删除元素、管理数据的方法。由于list接口与set接口都实现了collection接口,因此这些方法对list集合和set集合是通用的。

    List接口的常用方法

  List接口继承了Collection接口,因此包含Collection中的所有方法。又因为List是列表类型,所有List接口还提供了一些适合于自身的常用方法。  

  技术分享

  技术分享

  List接口中适合于自身的方法都与索引有关。由于List集合以现行方式存储对象,因此可以通过对象的索引来操作对象。注意:List集合中可以包含重复的对象,如要获取重复对象第一次出现的的索引位置可以使用indexof()方法,想要获取重复对象最后一次出现的索引位置,可以使用lastindexof()方法。使用indexof()与lastindexof()方法时,如果指定的对象在list集合中只有一个,则通过两个方法获得的索引位置是相同的。

    set接口的常用方法

  set集合由set接口和set接口的实现类组成。set接口继承了collection接口,因此包含了collection接口的所有方法。set接口中的常用方法如表:

  技术分享

  技术分享

  由于set集合不允许存在重复类,因此可以使用set集合中的addAll()方法,将collection集合添加到set集合中并除掉重复值。

  注意:集合迭代器概念

      Map接口的常用方法

  (作用)Map接口提供了将键映射到值的对象。一个映射不能包括重复的键;每个键最多只能映射到一个值。Map接口中同样提供了集合的常用方法,如clear()、size()等,除此之外,还包括如表所示的方法:

  技术分享

  技术分享

  由于map集合中的元素是通过key、value进行存储的,要获取集合集合中指定的key值或value值,需要先通过响应的方法获取key集合或value集合,再遍历key集合或value集合获取指定值。

集合类接口的实现类

    list接口的实现类

  要使用list集合,通常情况下需要声明为list类型,然后通过list接口的实现类来对集合进行实例化。list接口的实现类常用的有arrylist与linkedlist。

  1)ArrayList类

  该类实现了可变的数组,允许所有元素,包括null。可以根据索引位置对集合进行快速的随即访问。缺点是向指定的索引位置插入对象或删除对象的速度较慢。语法格式:

  List<string>lsit = new arraylist<string>();

  2)linkedlist类

  该类采用链表结构保存对象。这种结构的有点事便于向集合中插入和删除对象,经常需要向集合中插入、删除对象时,使用linkedlist类实现的list集合的效率较好;但对于随即访问集合中的对象,使用linkedlist类实现list集合的效率较慢。语法格式:

  List<String> list = new LinkedList<String>();

  使用List集合时通常声明类List类型,可通过不同的实现类来实例化集合。

  (举例)分别通过ArrayList、linkedlist类实例化list集合。在项目中创建gather类,在主方法中创建集合对象,通过math类的random()方法随即获取集合中的某个元素,然后溢出数组中索引位置为2的元素,最后遍历数组。

    set接口的实现类

  要使用set集合,通常情况下需要声明为set类型,然后通过set接口的实现类来实例化。set接口的实现类通常用的有hashset和treeset类。语法格式为:

  Set<String>collSet = new HashSet<String>();     Set<String>collset2 = new TreeSet<String>();

  由于set集合中的对象是无序的,遍历set集合的结果与插入set集合的顺序并不相同。

    map接口常用的实现类有hashmap和treemap。通常建议使用hashmap实现类实现map集合,因为由hashmap类实现的map集合对于添加和删除映射关系效率更高。hashmap是基于哈希表的map接口的实现,hashmap通过哈希码对其内部的映射关系进行快速查找;有hashmap类实现的map集合对于添加或删除映射关系效率高;而treemap中的映射关系存在一定的顺序,如果希望map集合中的对象存在一定的顺序,应该使用treemap类实现map集合。

  1)hashmap类

  该类基于哈希表的map接口的实现,此实现提供所有可选的映射操作,并允许使用 null值和null键,但必须保证键的唯一性。hashmap通过哈希码对其内部的映射关系进行快速查找。此类部保证映射的顺序,特别是不保证该顺序永久不变。

  2)treemap类

  该类不仅实现了map接口,还实现类Java.util.sortedmap接口,因此集合中的映射关系具有一定的顺序。但在添加删除和定位映射的关系上,treemap类比hashmap类的性能差一些。由于treemap类实现的map集合中的映射关系是根据键对象按照一定的顺序排列的,因此不允许键对象是null。

  可以通过hashmap创建map集合,当需要顺序输出时,再创建一个完成相同映射关系的treemap类实例。

迭代器

  迭代器的创建和使用

  利用iterator接口创建迭代器,iterator接口位于Java.util报下。iterator接口中有3个方法。

  hasNext():如果仍有元素可以迭代,则返回true。

  next():返回迭代的下一个元素。

  remove():从迭代器指向的collection中移除迭代器返回的最后一个元素(可选操作)。

  listIterator接口竭诚了iterator接口。

  小结:java语言中常见的集合,包括list集合、set集合、map集合。对于每种集合的特点应该掌握。长点掌握集合的遍历、添加对象、删除对象的方法。本章在介绍每种集合时都给出了典型的应用。集合时Java语言中重要的部分,应该学会使用集合类。

  

---恢复内容结束---

8.0Java集合类

标签:iter   rem   恢复   根据   --   删除   返回   保存   适合   

原文地址:http://www.cnblogs.com/L1nus/p/6907634.html

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