8.0Java集合类

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

  集合可以看做是一个容器,如红色的衣服可以看做是一个集合、所有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语言中重要的部分,应该学会使用集合类。

  

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

时间: 2024-10-10 07:51:19

8.0Java集合类的相关文章

Java集合类: Set、List、Map、Queue使用

目录 1. Java集合类基本概念 2. Java集合类架构层次关系 3. Java集合类的应用场景代码 1. Java集合类基本概念 在编程中,常常需要集中存放多个数据.从传统意义上讲,数组是我们的一个很好的选择,前提是我们事先已经明确知道我们将要保存的对象的数量.一旦在数组初始化时指定了这个数组长度,这个数组长度就是不可变的,如果我们需要保存一个可以动态增长的数据(在编译时无法确定具体的数量),java的集合类就是一个很好的设计方案了. 集合类主要负责保存.盛装其他数据,因此集合类也被称为容

Java集合类操作优化总结

清单 1.集合类之间关系 Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap 本文讲的就是集合框架的使用经验总结,注意,本文所有代码基于 JDK7. 集合接口 Collection 接口 Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素(Elements).一些 Collection 允许

Java集合类详解(转)

Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).JavaSDK不提供直接继承自Collection的类,javaSDK提供的类都是继承自Collection的"子接口"如List和Set. 所

Java 集合类详解

1.java集合类图 1.1 1.2 上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等. 发现一个特点,上述所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含hashNext(),next(),remove()三种方法.它的一个

C#中的常见集合类的比较

一.非泛型集合与泛型集合 非泛型集合:Array.ArrayList.HashTable.Queue.Statck.SortedList 泛型集合:List.Dictionary.Queue.Stack.SortedList 二.常见的集合类 Array.ArrayList.List (一)Array: 即常见的数组形式,大小固定,命名空间为System (二)ArrayList: 命名空间为System.Collection,是数组的复杂版本.ArrayList 类提供在大多数 Collect

JAVA集合类之ArrayList和LinkedList性能比较

关于ArrayList和LinkedList这两个集合类的性能,网上很多文章表示:ArrayList的插入性能要比LinkedList差.今天突然想测试下,这个结论是否准确. 编写了如下代码: import java.util.ArrayList; import java.util.LinkedList; import java.util.List; public class Demo { public static void main(String[] args) { int count = 

常用字符串与集合类转换的工具类

在项目中,我们经常需要把接收到的字符串转换成对应的集合类保存,或者把集合类转换成字符串以方便传输,这个工具类中封装了几个常用的方法,对于这种转换需求十分方便. 1 import java.util.Arrays; 2 import java.util.Collection; 3 import java.util.HashMap; 4 import java.util.HashSet; 5 import java.util.Map; 6 import java.util.Properties; 7

集合类

集合类概述 Java语言的java.util包中提供了一些集合类,这些集合类又被称为容器.提到容器不难会想到数组集合类与数组的不同之处是,数组的长度是固定的,集合的长度是可变的:数组用来存放基本类型的数据,集合用来存放对象的引用.常用的集合有List集合.Set集合.Map集合,其中List与Set实现了Collection接口.个借口还提供了不痛的实现类.上述集合类的继承关系如图: 集合类接口的常用方法 Collection接口是层次结构中的根接口.构成Collection的单位,被称之为元素

40个Java集合类面试题和答案(转载)

Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点.这里,我列出了一些关于Java集合的重要问题和答案. 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用,Java1.2提出了囊括所有集合接口.实现和算法的集合框架.在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久.它还包括在Java并发包中,阻塞接口以及它们的实