Q:ArrayList和Vector有什么区别?HashMap和HashTable有什么区别?
A:Vector和HashTable是线程同步的(synchronized)。性能上,ArrayList和HashMap分别比Vector和Hashtable要好。
Q:大致讲解java集合的体系结构
A:List、Set、Map是这个集合体系中最主要的三个接口。
其中List和Set继承自Collection接口。
Set不允许元素重复。HashSet和TreeSet是两个主要的实现类。
List有序且允许元素重复。ArrayList、LinkedList和Vector是三个主要的实现类。
Map也属于集合系统,但和Collection接口不同。Map是key对value的映射集合,其中key列就是一个集合。key不能重复,但是value可以重复。HashMap、TreeMap和Hashtable是三个主要的实现类。
SortedSet和SortedMap接口对元素按指定规则排序,SortedMap是对key列进行排序。
Comparable和Comparator区别
A:调用java.util.Collections.sort(List list)方法来进行排序的时候,List内的Object都必须实现了Comparable接口。
java.util.Collections.sort(List list,Comparator c),可以临时声明一个Comparator 来实现排序。
Collections.sort(imageList, new Comparator() {
public int compare(Object a, Object b) {
int orderA = Integer.parseInt( ( (Image) a).getSequence());
int orderB = Integer.parseInt( ( (Image) b).getSequence());
return orderA - orderB;
}
});
如果需要改变排列顺序,改成return orderb - orderA 即可。
集合接口:
6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。
抽象类:
5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。
实现类:
8个实现类(实线表示),对接口的具体实现。
· Collection 接口是一组允许重复的对象。
· Set 接口继承 Collection,但不允许重复,使用自己内部的一个排列机制。
· List 接口继承 Collection,允许重复,
以元素安插的次序来放置元素
,不会重新排列。
· Map接口是一组成对的键-值对象,即所持有的是key-value pairs。Map中不能有重复的key。拥有自己的内部排列机制。
· 容器中的元素类型都为Object。从容器取得元素时,必须把它转换成原来的类型。
(1) 单元素添加、删除操作:
//将对象添加给集合
boolean add(Object o)
//如果集合中有与o相匹配的对象,则删除对象o
boolean remove(Object o):
(2) 查询操作:
//返回当前集合中元素的数量
int size()
//判断集合中是否有任何元素
boolean isEmpty()
//查找集合中是否含有对象o
boolean contains(Object o)
//返回一个迭代器,用来访问集合中的各个元素
Iterator iterator()
(3) 组操作 :作用于元素组或整个集合
//查找集合中是否含有集合c 中所有元素
boolean containsAll(Collection c)
//将集合c 中所有元素添加给该集合
boolean addAll(Collection c)
//删除集合中所有元素
void clear()
//从集合中删除集合c 中的所有元素
void removeAll(Collection c)
//从集合中删除集合c 中不包含的元素
void retainAll(Collection c)
(4) Collection转换为Object数组 :
//返回一个内含集合所有元素的array
Object[] toArray()
//返回一个内含集合所有元素的array。
//运行期返回的array和参数a的型别相同,需要转换为正确型别。
Object[] toArray(Object[] a)
分享到:
相关推荐
详细讲解java中集合的分类和使用,并介绍了java集合中一些不为人知的小秘密。还详细介绍了java并发包中的集合特性。
Java集合框架,对开发者来说有很大的帮助,希望喜欢。
Collections 源码 java Java-Collection- 对Java的Collection框架源码阅读
quest-java-collection1
java-collection-jajal
java-collection-example 该项目只是Java Collections库工作方式的演示。 该项目只是Java Collections库工作方式的演示。
InfoQ的关于JVM GC的学习资料,对于深入学习JVM的GC机制很有帮助
dubber-java-collection Java集合类学习,用法&原始码和实现原始码
The Java Platform, Standard Edition HotSpot Virtual Machine Garbage Collection Tuning Guide describes the garbage collection methods included in the Java HotSpot Virtual Machine (Java HotSpot VM) and ...
最新版java 集合类 all
Java 面试宝典,讲解面试技巧,面试常见问题。
Java 垃圾回收经典手册,讲得特别清楚,非常推荐!
描述了多种常用加密算法的java代码,其中包括:des,3des,aes,rsa,dsa,md5,sha1.的具体实现。
Java 集合基准一组微基准,用于比较各种 Java 集合数据结构的不同实现。 测试的数据结构: 原始整数数组列表更多内容......(计划:对象列表、排序列表、队列、地图和集合) 测试库:计划: , 实施细则当前实现使用...
java8 源码 Java 集合大练习 项目说明: 本项目致力于练习集合常用的操作:filter,map,flatmap,reduce,sort,skip,limit,allmatch等。 对于集合的操作,可以有多种方式实现,本教程主要用Java8 Stream API 的...
Java 1.5 jvm 虚拟机调优技术
参加比赛前培训的JAVA算法题目集合,学校内部老师整理而来,在校学习之必备良方!
Java 集合框架(2_9)-Collection - ArrayList 源码解析
Java 集合框架(1_9)-Collection 类关系图
计算机后端-Java-Java核心基础-第24章 集合01 04. 复习:Collection.avi