集合不能忘记

集合
1 什么是集合?
Java集合就像是一个容器,是使程序能够存储和操纵元素不固定的一组数据。 所有Java集合类都位于java.uti包中。
与数组对比不同点如下:
1>Java集合中不能存放基本数据类型,只能存放对象的引用。
(但是在JDK5.0以后的版本当中,JAVA增加了“自动装箱”和“自动拆箱”的机制,比如如果要存入一个int类型的数据,JVM会把数据包装成Integer然后再存入集合,看起来集合能够存入基本数据类型,其实是不能的只是多了一个包装数据的过程.)
2>数组的长度固定,集合的长度可变.
3>数组只能通过下标访问元素,类型可变,而有的集合可以通过任意类型查找所映射的具体对象.
2 集合的分类
通过上面集合与数组的比较可以看得出来,集合的用途是非常广泛的,那集合都有哪些组成的,下面一幅图展示集合的框架图:
集合Collection接口
集合Map接口
重点介绍:Collection接口的方法
方法             描述
boolean add(Object o)    向集合加入一个对象的引用
void clear()        删除集合中所有对象,即不在持有对象的引用
boolean contains(Object o)  判断在集合中是否持有对象的引用
boolean isEmpty()    判断集合是否为空
Iterator iterator()   返回一个Iterator对象,可以用它来遍历集合中的元素
boolean remove(Object o)  从集合中删除一个对象的引用
int size()         返回集合中元素的个数
object[] toArray()      返回一个数组,该数组包含集合中的所有元素

因为List接口和Set借口都继承了Collection接口,所以这些方法他们都是适用的。一下几点需要记下来:
1>集合的遍历需要 iterator() 方法,这里就需要提到 Iterator接口,Iterator接口隐藏底层集合中的数据结构,提供遍历各种类型集合的统一接口。Iterator接口中声明如下的方法:
(1) hasNext():判断集合中的元素是否遍历完毕,如果没有,返回true。
(2) next():返回下一个元素。
(3) remove():从集合中删除上一个由next()方法返回的元素。

3 各类集合的详细介绍及优缺点
1>List集合
List集合是有序的,允许存在重复的元素。该集合有索引,有两个类实现了List接口,分别是:
ArrayList:底层的数据结构使用的是数组结构
特点:查询速度快,但是增删慢.线程不同步
LinkedList:底层使用的是链表数据结构
特点:增删速度快,查寻速度慢.
list:特有方法,凡是可以操作角标的方法都是该体系特有的方法
增:add(index,element); addAll(index,Collection);
删:remove(index);
改:set(index,element);
查:get(index); subList(from,to); ListIterator();(重点)
2>Set集合
Set集合是无序的,不允许存在重复的元素。同样的,也有两个类实现了Set接口,分别是:
HashSet:底层数据结构是哈希表,此类允许存在null值;
TreeSet:不仅实现了Set接口,还实现了java.util.SorteSet接口,因此它实现Set接口时会按照自然顺序递增排序
3>Map集合
Map与上两个集合不一样,它并没有实现Collection接口,它提供了一组键值对,key和value,key值不能重复,只能对应一个value值,它的实现类也有两个:
HashMap:基于哈希表,此类语序null值和null键,但是要保证键的唯一性,意思是null键最多有一个;
TreeMap:不允许null键的存在
以上两个实现类,使用时重点推荐和经常使用的就是HashMap,因为它删除和添加映射关系的效率更高。

4 使用集合时常用的几个方法
1>数组和集合的相互转换
在实际工作中,常碰到数组和集合相互转换的情况,下面的方法就可以满足:
toArray()方法:是遍历用的(把集合转变为数组)
public class ToArray {
public static void main(String[] args) {
Collection c=new ArrayList();
c.add(“hello”);
c.add(“world”);
c.add(“java”);
Object[] obj=c.toArray();
for(int x=0;x < obj.length;x++){
System.out.println(obj[x]);
}
}
}
asList()方法,把数组转变为集合
//定义一个数组
//String[] s={“hello”,“world”,“java”};
//List list=Arrays.asList(s);
//直接引用
List list=Arrays.asList(“hello”,“world”);
for(String s1:list){
System.out.println(s1);
}
2>取集合的长度
size()
3>遍历集合Iterator()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值