欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于Java中集合的简介

程序员文章站 2022-06-10 22:17:39
...

一、简介

Java将集合的接口与实现分离,集合类的基本接口是Collection接口和Map接口。以下为其之间的关系

关于Java中集合的简介

关于Java中集合的简介

集合与数组的比较:1.数组是定长的,不会自动扩充,而集合是可变的;

    2.数组中可以存放基本数据类型和引用类型,而集合只能包含引用类型的对象。

二、Collection接口

Collection有两个子接口:List和Set。JDK 不提供此接口的任何实现:它提供更具体的子接口(如 SetList)实现。

Collection有一个iterator方法,该方法用于返回一个实现了Iterator接口的对象(也称迭代器),Iterator是为遍历而设计,能够从集合中取出元素和删除元素,但是没有添加元素的
功能,我们可以使用这个迭代器对象依次访问集合内的元素。

关于Iterator接口,包含了3个方法

public interface Iterator<E>{
	boolean hasNext();
	E next();
	void remove();
}
如图所示,初始时游标位于第一个元素的前面,通过调用next方法,游标就越过一个元素,并返回刚刚越过的那个元素的引用,但是如果到达了集合的末尾,next方法会抛出一个NoSuchElementException异常。因此,需要在调用next方法之前先调用hasNext方法,用于判断游标的下一位置是否还有元素。

remove方法将会删除上次调用next方法时返回的元素。

关于Java中集合的简介

Set是无序的,元素不允许重复;List是有序的,元素允许重复。

无序是指元素存入顺序与集合内存放顺序不同;无重复是指两个对象obj1与obj2,如果obj1.equals(obj2)返回true,则认为obj1与obj2是重复的。

关于Set与List的区别:

Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。

List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。

List中常用的有ArrayList和Linkedlist,Set中常用的有HashSet。

ArrayList是线性顺序存储的,是一种线性表,相当于动态数组;Linkedlist由链表实现的,可以实现栈和队列。

HashSet以哈希表的形式存放元素,插入删除速度很快。

Collection中的方法如下:

关于Java中集合的简介

关于Java中集合的简介

三、Map接口

Map中的元素是以键值对(key/value)的形式存放的,在Map中,key值是唯一的,Map接口的常用方法有:

关于Java中集合的简介

关于Java中集合的简介

Map接口的实现类中常用的有HashMap和TreeMap,Map中插入、删除和定位元素,HashMap是最好的选择。但如果要按顺序遍历键,那么TreeMap会更好。