java集合类介绍

数组和集合

数组不仅可以存放基本数据类型也可以容纳属于同一种类型的对象。数组的操作是高效率的,但也有缺点。比如数组的长度是不可以变的,数组只能存放同一种类型的对象(或者说对象的引用)。

JDK中提供了Java集合类,所有Java集合类都位于Java.util包中,与Java数组不同,Java集合不能存放基本数据类型数据,而只能存放对象的引用。如果在集合类中既想使用简单数据类型,又想利用集合类的灵活性,就可以把简单数据类型数据变成该数据类型类的对象(例如基本数据类型转为引用数据类型,类似int 转成 Integer),然后放入集合中处理,但这样执行效率会降低。

集合分类:Collection接口和Map接口

Java中的集合类可以分为两大类:一类是实现Collection接口;另一类是实现Map接口。如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口。

Collection是一个基本的集合接口,Collection中可以容纳一组集合元素(Element)。

Collection有两个重要的子接口:List和Set 

List接口和Set接口的区别: 

List接口是一个有序的集合,可以包含重复的元素,List可以有多个null元素,List中的每个元素都有索引,提供了按索引访问的方式。List类似于Java的数组。实现类有: ArrayList、Vector、LinkedList。

Set接口是一个无序的集合不能包含重复的元素,Set最多有一个null元素,对Set中任意的两个元素element1和element2都有elementl.equals(element2)= false。此接口模仿了数学上的集合概念。 实现类有:TreeSet、HastSet、LinkHastSet。

查看List接口实现类之间的区别

查看List遍历的方法

Map接口 

Map是Java.util包中的另一个接口,它和Collection接口没有关系,是相互独立的,但是都属于集合类的一部分。

Map包含了key-value对。Map不能包含重复的key,但是可以包含相同的value。实现类:HashMap、Hashtable、LinkedHashMap和TreeMap

 查看Map接口实现类之间的区别

查看Map遍历的方法

疑问:图最左边有个Iterator接口是干什么的? 

Iterator接口

Iterator:所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含以下三种方法:
1.hasNext()是否还有下一个元素。
2.next()返回下一个元素。
3.remove()删除当前元素。

集合类带来的好处

(1)降低编程难度:在编程中会经常需要链表、向量等集合类,如果自己动手写代码实现这些类,需要花费较多的时间和精力。调用Java中提供的这些接口和类,可以很容易的处理数据。

(2)提升程序的运行速度和质量:Java提供的集合类具有较高的质量,运行时速度也较快。使用这些集合类提供的数据结构,程序员可以从“重复造轮子”中解脱出来,将精力专注于提升程序的质量和性能。

(3)无需再学习新的APl:借助泛型,只要了解了这些类的使用方法,就可以将它们应用到很多数据类型中。如果知道了LinkedList<String>的使用方法,也会知道LinkedList<Double>怎么用,则无需为每一种数据类型学习不同的API。

(4)增加代码重用性:也是借助泛型,就算对集合类中的元素类型进行了修改,集合类相关的代码也几乎不用修改。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值