Collection:集合层次中的根接口,JDK没有提供这个接口直接的实现类。
Set:不能包含重复的元素。SortedSet是一个按照升序排列元素的Set。
List:是一个有序的集合,可以包含重复的元素。提供了按索引访问的方式。
Map:包含了key-value对。Map不能包含重复的key。SortedMap是一个按照升序排列key的Map。
1.Q:ArrayList和Vector有什么区别?HashMap和HashTable有什么区别?
A:Vector和HashTable是线程同步的(synchronized)。性能上,ArrayList和HashMap分别比Vector和Hashtable要好。
2.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列进行排序。
3.Q: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 即可。
public interface
Collection
extends Iterable
public interface
List
extends Collection
public abstract class
AbstractList
extends AbstractCollection
implements List
public class
Vector
extends AbstractList
implements List,
RandomAccess,
java.lang.Cloneable,
java.io.Serializable
基于Array
是“sychronized”的
public class
ArrayList
extends AbstractList
implements List,
RandomAccess,
Cloneable,
java.io.Serializable
基于Array
ArrayList是非同步的。所以在性能上要比Vector优越一些
public class
LinkedList
extends AbstractSequentialList
implements List,
Queue,
Cloneable,
java.io.Serializable
不基于Array
基于Array的List(Vector,ArrayList)适合查询,而LinkedList(链表)适合添加,删除操作
List基本上都是以Array为基础。但是Set则是在HashMap的基础上来实现的,这个就是Set和List的根本区别
public abstract class AbstractSet
extends AbstractCollection
implements Set
public class HashSet
extends AbstractSet
implements Set, Cloneable, java.io.Serializable
HashSet的存储方式是把HashMap中的Key作为Set的对应存储项
public class LinkedHashSet
extends HashSet
implements Set, Cloneable, java.io.Serializable
public class TreeSet
extends AbstractSet
implements SortedSet, Cloneable, java.io.Serializable
它是通过SortedMap来实现的
public interface Map<K,V>
public abstract class AbstractMap<K,V>
implements Map<K,V>
public class HashMap<K,V>
extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable
public class TreeMap<K,V>
extends AbstractMap<K,V>
implements SortedMap<K,V>, Cloneable, java.io.Serializable
HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)
分享到:
相关推荐
集合框架学习笔记 https://mp.csdn.net/mdeditor/88970781#
java学习笔记java学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记...
java集合类学习笔记.doc 学习java集合时留下的宝贵知识
Swift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习...
一个java基础项目(学习笔记).zip一个java基础项目(学习笔记).zip一个java基础项目(学习笔记).zip一个java基础项目(学习笔记).zip一个java基础项目(学习笔记).zip一个java基础项目(学习笔记).zip一个java基础项目...
spring框架学习笔记(全).pdf
摘写笔记、记录学习过程,思考分析总结出来的笔记,内容丰富详细,知识点到位,而不是罗列代码而忽略知识点的讲解,每一个知识点对应一个代码,有了这个笔记,学习java的集合更加容易,利用别人的,去成为你自己。...
展讯学习笔记(整理).pdf
Java Spring框架学习笔记(内附源码).pdf
HTML笔记. J2EE笔记. Javascript笔记. JAVA笔记.oracle 笔记.Linux笔记.tomcat笔记.面试问题.数据结构.听韩顺平的笔记.正则表达式.等,我是我在上大学时学习做的笔记,拿出来和大家共享。。
教育综合基础知识学习笔记个人整理版.doc
北京大学翻译硕士考研学习笔记的整理方法.doc
java从入门到精通-学习笔记整理863页.doc
Java学习笔记_内存管理.rarJava学习笔记_内存管理.rar
Core Java学习笔记...........31 第一章 JAVA前言..31 第二章 标识符,关键字,类型........35 第三章 表达式与流控制....................41 第四章 数组.............50 第五章 对象和类(OO思想).........53 第...
会计从业资格考试财经法规学习笔记精编整理12.doc
Java常用框架学习笔记.7z
C#学习笔记......
Java JDK 6学习笔记.zipJava JDK 6学习笔记.zip Java JDK 6学习笔记.zip Java JDK 6学习笔记.zip
Manning.TypeScript.Quickly.2020 学习笔记 Manning.TypeScript.Quickly.2020 学习笔记 Manning.TypeScript.Quickly.2020 学习笔记 Manning.TypeScript.Quickly.2020 学习笔记 Manning.TypeScript.Quickly.2020 学习...