课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们学习java编程开发语言,除了需要掌握基本语法以外,同时也需要了解什么是集合与数据结构,下面我们就通过具体的案例分析来了解一下吧。希望通过对本文的阅读,大家对于java编程有更多的了解。
什么是集合类
如果你学习说数据结构,那么学习集合就很简单.因为集合就是存储数据的结构.例如有链表结构(list)还有map结构.等等.
集合类就是存储数据的集合.
Collection接口.由Set类.以及List类就行实现.并且还有子类.
Map有HashMap类.还有TreeMap类继承.各个类都是不一样的.比如List.代表链表类.可以存储数据,是连续的.只要有前驱后继即可.子类就是对链表进行了限制而已.
二丶Collection接口
每次学习一个类的时候.都要从它的顶层开始学习.比如我们学习list类.那么先就要看他的父类.父类是否还有父类.因为公共父类是Object,所以我们就不介绍了.直接介绍Conllection接口
这个接口.是层级结构中的根接口.构成Collection的单位称为元素.Collection通常是不能直接使用的.但是这个接口提供了添加元素.删除元素.管理数据的方法.List跟Set接口.都继承了Collection接口.所以她们也都默认有这些方法.
三丶List接口
从上面的类的继承图可以看到.List接口实现了Collection接口.所以List接口中包含了Collection接口的方法.但是List接口还提供了两个重要的方法.
get(intindex):获取指定索引位置的元素
set(intindex,Objectobj);将集合中指定索引位置的对象修改为指定的对象.
提供了Setget方法.
因为添加了两个重要方法.所以List接口有两个类实现了它.分别有不同的作用
ArrayList类:这个类就是可变的数组.我们定义的数组都是死的.new多大就是多大.它是可以变得.跟数组一样用.就是可以自动变.我们自己也可以封装.在C++中就是STL的vcteor.
作用:可以进行快速的随机访问.缺点就是向指定索引位置插入或者删除对象慢.原因:
如果学过C++并且自己封装就知道.其实当你数据超过数组大位置的时候.而是释放这块内存.重新申请一块大内存.并且拷贝原有数据.然后插入到指定位置的时候.,还需要遍历数组.移动元素.所以底层做了很多.所以这就是慢的原因.
LinkedList类:这个类就是我们传统意义上的链表的.链表我们知道.插入跟删除快.随机访问就慢了.
原因:数组有[]使用这个给个索引就可以访问.但是链表不可以.链表只有遍历去寻找才可以.所以找的慢.但是你插入跟删除快.因为它断开链表指向下一个就行.
ArrayList类常用方法
1.增加
不管是ArrayList以及LinkedList类.其实都是管理数据的.对数据的增删改查,既然底层已经使用数据结构的手法给我们封装好了.所以我们只需要熟悉方法即可.
如果想深入.可以看一下源码.或者学习下数据结构思想.数据结构很重要的一门课程.
2.删除
对于ArrayList类.它的删除方法有三个.还有一个单独的.clean();这个方法是清除集合中的所有元素.
1.删除指定索引位置的值.remove
2.给定一个对象.删除这个对象则集合中次出现位置的对象.remove(objecto)
3.给定一个范围.删除这个范围内的所有元素.removeRange();
具体不测试了.
3.ArrayList判断跟拷贝.
判断为空
booleanisEmpty():为空返回True
Objectoclone();克隆.拷贝一个Arraylist副本.使用Object对象接受.我们可以向下转型.
publicbooleancontains(Objecto);给定一个元素.判断这个元素是否则这个集合中.如果有返回true
4.ArrayList的元素查找.
publicintindexOf(Objecto);返回对象次出现在集合的位置.
publicintlastindexof(Objecto):从后往前查找.找出从后往前一个出现元素的位置.
节选:博客园
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!