Java中的Collection和Map
Posted 新梦起航
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的Collection和Map相关的知识,希望对你有一定的参考价值。
集合的概念:
现实生活中很多事物凑在一起
数学中的集合:具有共同属性的事物的总体
Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象
集合的作用:
在类内部,对数据进行组织
简单而快速的搜索大量的条目
有的集合接口,提供了一系列有序的元素,并且可以在序列中间快速的插入或者删除有关元素
有的集合接口提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是 任 意类型的。
数组和集合的区别:
数组长度固定,集合长度可变
数组只能通过下标访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象
Collection是一个接口,它常用的子接口有如上图三个,内部存储的为一个个独立的对象。
List 表示序列,内部存储的对象是有序的可以重复的。
Queue表示队列,内部存储对象是有序的并且是可以重复的,但不常用。
Set 表示集,内部存储对象是无序的且不可重复。
List可以精确的控制每个元素的插入位置,或删除某个位置元素
ArrayList为数组序列,是List的一个重要实现类,底层是由数组实现的。
Map提供映射实例,存储对象为一个实体,以键值对的形式存在,里面的实例是无序的其最常用的实现类为HashMap
泛型:
集合中的元素,可以是任意类型的对象(对象的引用)
如果把某个对象放入集合,则会忽略他的类型,而把它当作Object处理
泛型则是规定了某个集合只可以存放特定类型的对象。
会在编译期间进行类型检查
可以按指定类型获取集合中的元素
Set 接口及其实现类 --------HashSet
Set是元素无序并且不可以重复,被称为集
HashSet-------哈希集,是Set的一个重要实现类
Set不可以使用set()方法修改对象,因为它里面的元素是无序的。
List可以使用set()方法。
Set遍历集合中的每一个元素只能使用foreach 或 iterator 迭代出来(由于无序每次迭代结果不相同)
由于Set集合中的元素是不可重复的故重复的元素不管添加多少次只保留一个对象(可以存储空对象不过没意义)
集合中的增删改查方法:
List:
增加:add(对象的引用) 删:remove(对象的引用) 该: set(int , object); 查: get(int);
判断一个对象是否在序列中出现过的方法 contains(Object obj); 调用该方法时一定要重写存储对象所属类的equals方法,因为:contains方法首先调用对象的equals方法。
indexOf(Object obj);返回序列中第一次出现的相应对象的索引
lastIndexOf(Object obj);返回序列中最后一次出现的相应对象的索引
若该对象不在序列中返回-1
Set:
其中调用contains方法是要重写存储对象方法的hashCode() 和 equals()方法,原因如下:
重写部分代码:
Map 和HashMap
Map接口:
Map提供了一种映射关系,其中的元素是以键值对(Key-Value)的形式存储的,能够实现根据Key快速查找 Value
Map中的键值对以Entry类型的对象实例形式存在
Map:
Collections:
若要对自定义的对象的集合进行排序,则该对象要继承如下两个接口之一,并实现他们中的比较方法.
以上是关于Java中的Collection和Map的主要内容,如果未能解决你的问题,请参考以下文章
[Java复习02] 集合框架Collection - 面试题小结