关于Java中集合的简介

一、简介

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


集合与数组的比较: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方法时返回的元素。


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

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

关于Set与List的区别:

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

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

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

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

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

Collection中的方法如下:



三、Map接口

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



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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值