java集合学习小结

时间:2024.3.19



几个面试常见问题:
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 即可。

4.Q:简述equals()和hashCode()
    A:...不知道。下回分解

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

基于ArrayListVectorArrayList)适合查询,而LinkedList(链表)适合添加,删除操作




List基本上都是以Array为基础。但是Set则是在HashMap的基础上来实现的,这个就是SetList的根本区别
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集合类小结(思维导图版)

【文章作者】曾健生

【作者邮箱】zengjiansheng1@126.com

【作者QQ】190678908

【作者博客】http://blog.csdn.net/newjueqi

http://newjueqi.javaeye.com/

【编程环境】JDK 1.6.0_01

【作者声明】欢迎转载文章,但转载请保留文章的完整性以及注明文章的出处。

*******************************************************************************

说起来绘制这幅思维导图用了挺多的时间,而且最后把思维导图文件变成图片时遇到了一点麻烦,没注册的imindmpa版本不能导出为图片,以前是截图制作成图片的,当这幅思维导图过长没法截完整,最后用了一个笨办法,分别截了两次图,最后用图片处理软件把两张图合并在一起,这也是没办法中的办法吧^-^

更多相关推荐:
java学习总结

JAVA论文姓名:耿岩班级:信学号:09220xx314202Java学习总结Java有三个体系,JavaSE、JavaME、JavaEE。JavaSE是桌面应用;JavaME属于企业级应用,用于网络编程,是对…

个人的Java学习总结

第一章Java的基本语法本文档由http://hitaow.sinaapp.com整理发布。1.1:Java的注释:1.//单行注释2./**/多行注释3./***/是javadoc注释,在生成java文档时使…

java学习总结

第三周学习总结这周从HTML学到了mysql:1.HTML:HypertextMarkupLanguage超文本标记语言后缀名为.html或.htm由两部分组成:head和body2.body属性:bgcolo…

java学习总结

17.静态成员变量和静态函数都可以直接用类名调用,静态函数当中不可以使用非静态的成员变量静态成员变量只有一份;在静态函数当中不能使用this;静态代码块的主要作用是为静态成员变量赋值;19.在子类的构造函数当中…

java学习总结

Java学习总结一、三种JDK平台1.javaSE:java标准版,可以开发桌面应用和低端的服务器应用,也可开发Applet程序。2.javaEE:java企业版,可以构建企业级服务应用,包含了SE平台,增加了…

java学习总结(基础加web)

Java考试题Java基础部分1、请简要描述oop的主要特征,并谈谈对这些特征的理解。Oop主要特征:抽象,封装,继承,多态;抽象:忽略与当前主题无关的部分,抓住重点封装:使用方法将类的属性隐藏起来,控制用户对…

Java学习总结 16个亮点

Java学习总结16个亮点1.八大基本数据类型byte(字节型8)int(整型;32;程序中一般默认为int型)short(短整型16)long(长整型32)float(浮点型32)double(双精度浮点型6…

30. Java 学习总结

Java学习总结一包的学习package在开头出声明为packagecnskddztxzhaohong在命令输入框内命令为javacdTestjava一旦定义了包此时里面的类的名字必须是包括包名了不再是简单的类...

java学习整体总结

CoreJava部分1简述下java基本数据类型及所占位数java基本数据类型4类8种整数类型byte1byteshort2byteint4bytelong8byte浮点类型float4bytedouble8b...

java的学习步骤方法书籍大总结

java语言基础谈到Java语言基础学习的书籍大家肯定会推荐BruceEckel的ThinkinginJava它是一本写的相当深刻的技术书籍Java语言基础部分基本没有其它任何一本书可以超越它该书的作者Bruc...

java学习总结

编译compile环境变量分2个因为TOMCAT运行的时候需要JAVA编译器准确的说就是javacexe这个程序这个程序在默认的情况下你控制台输入javacexe系统是找不到这个程序的只有将它所在的目录加入环境...

JavaWeb学习总结

一基本概念11WEB开发的相关知识WEB在英语中web即表示网页的意思它用于表示Internet主机上供外界访问的资源Internet上供外界访问的Web资源分为1静态web资源如html页面指web页面中供人...

java学习总结(32篇)