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中元素的排列顺序是不固定的)
分享到:
相关推荐
java学习笔记java学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记...
一个java基础项目(学习笔记).zip一个java基础项目(学习笔记).zip一个java基础项目(学习笔记).zip一个java基础项目(学习笔记).zip一个java基础项目(学习笔记).zip一个java基础项目(学习笔记).zip一个java基础项目...
spring框架学习笔记(全).pdf
HTML笔记. J2EE笔记. Javascript笔记. JAVA笔记.oracle 笔记.Linux笔记.tomcat笔记.面试问题.数据结构.听韩顺平的笔记.正则表达式.等,我是我在上大学时学习做的笔记,拿出来和大家共享。。
北京大学翻译硕士考研学习笔记的整理方法.doc
Core Java学习笔记...........31 第一章 JAVA前言..31 第二章 标识符,关键字,类型........35 第三章 表达式与流控制....................41 第四章 数组.............50 第五章 对象和类(OO思想).........53 第...
会计从业资格考试财经法规学习笔记精编整理12.doc
Manning.TypeScript.Quickly.2020 学习笔记 Manning.TypeScript.Quickly.2020 学习笔记 Manning.TypeScript.Quickly.2020 学习笔记 Manning.TypeScript.Quickly.2020 学习笔记 Manning.TypeScript.Quickly.2020 学习...
通常,Java学习笔记可能涵盖类、对象、封装、继承、多态性、控制流、数据类型、异常处理、集合框架、IO流、线程、网络编程等主题。如果能提供清晰的文本内容,我将非常乐意为您详细解释相关的Java编程概念。
java学习笔记课后选择答案整理.doc
Java集合学习笔记.pdf
java学习笔记(20220104204256).pdf
java学习笔记(20220104205325).pdf
java学习笔记(20220104210240).pdf
3. **异常处理**:Java中的异常处理是程序健壮性的重要组成部分。课程会介绍如何使用try-catch-finally语句块处理运行时错误,以及如何自定义异常,使程序在遇到问题时能够优雅地处理。 4. **集合框架**:Java集合...
正则表达式在Java中用于文本匹配和搜索,是处理字符串的强大工具。Java提供了`java.util.regex`包,包含了Pattern和Matcher类来支持正则表达式的编译和匹配操作。理解如何构建和使用正则表达式对于数据验证、文本...
6. **字符串处理**:String类在Java中是不可变的,了解其常用方法如concat、substring、indexOf、replace等对编程很有帮助。 7. **集合框架**:Java集合框架包括List、Set和Map接口,以及ArrayList、LinkedList、...
本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,旨在帮助初学者或有经验的开发者巩固和提升Java编程技能。 1. 面向对象(OOP):Java的核心是...
Java学习笔记(一).md
接下来是“马士兵hibernate学习笔记.doc”。Hibernate是一个对象关系映射(ORM)框架,它简化了Java应用对数据库的操作。Hibernate允许开发者使用Java对象来操作数据库记录,减少了SQL的编写工作。笔记可能讲解了...