集合:保存多个其他对象的对象,不能保存简单类型

List:有序(存放元素的顺序),可重复的集合

ArrayList:实质就是一个会自动增长的数组

查询效率比较高,增删的效率比较低,适用于查询比较频繁,增删动作较少的元素管理的集合。

加载大批量的数据时,先进行手动扩容(就是调用ensureCapacity(int minCapacity)方法),这样可以提高效率。

LinkedList:底层是用双向循环链表来实现的

查询效率低,但是增删效率很高,适用于增删动作的比较频繁,查询次数较少的元素管理的集合

Set:无序的,不允许有重复元素的集合

HashSet:----注意不是用hash码的值去存储

Object类中的hashCode()的方法是所有类都会继承的方法,这个方法会算出一个Hash码值返回,HashSet会用Hash码值去和数组长度取模,对象的模值(这个模值就是对象要存放在数组中的位置,和数组的下标相同)相同时才会判断数组中的元素和要加入的对象的内容是否相同,如果不同才会再找位置添加进去,相同则不允许添加。

如果数组中的元素和要加入的对象的hashCode()返回了相同的Hash码值,才会用equals()方法来判断两个对象的内容是否相同。

注意:要存入HashSet的集合对象中的自定义类必须覆盖hashCode()、equals()两个方法,才能保证集合中元素不重复。

TreeSet:可排序的Set

SortedSet接口是Set的子接口,TreeSet是SortedSet接口的实现类,他可以对集合中的元素进行排序。

将自定义类的对象存放在TreeSet中,这个类需要实现了Comparable接口,TreeSet可以自动过滤掉重复元素所以不在需要重载hashCode()方法,TreeSet会根据比较规则判断元素内容是否相同,不同则会存入,TreeSet会在元素存入时就进行排序。

Comparable接口:

也叫做可比较接口,这个接口在java.lang包下,只要根据指定类型的排序规则实现了这个接口,就是可排序的。

这个接口中只定义了一个 compareTo(Object o) 方法,该方法的返回值类型是整型,如果当前对象大于参数对象就返回正数,当前对象等于参数对象就返回0,当前对象小于参数对象就返回负值,这样写就是升序排列,反之则是进行降序排列。

Comparator接口:

比较器Comparator接口,是另一种对自定义类型对象的集合整体排序的方法,存在于java.util包下。

这个接口中定义了一个 compare(Object o1,Object o2) 方法来比较两个对象,这个方法的返回值定义和上面介绍的那个方法是一样。

利用这种方式,则在创建集合的时候把定义好的比较器作为参数,构造一个集合

Map:存放key-value对(有关系的两个对象,一个做key,一个做value,同时存入)

HashMap:基于哈希表的 Map 接口的实现,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键

遍历:

先调用keySet()得到key的set集合,

再迭代遍历key的set集合,

根据key得到value。

Hashtable:同HashMap,一般不使用

HashMap与Hashtable的区别:

HashMap:非线程安全,不支持并发控制,允许空的键值对。

Hashtable:是线程安全,支持并发控制,不允许有空的键值对。

SortedMap接口:Map的子接口,按某一特定排序规则来存放所加入的键值对

实现类:TreeMap类。

Key值的排序规则,同SortedSet接口实现类TreeSet

注意:

key一般是8种基本类型的封装类或者是String类,拿自己自定义的类作为Key没有意义。

key不可重复,value可以重复

java面试第六天的更多相关文章

  1. JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结

    我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和 ...

  2. 转:最近5年133个Java面试问题列表

    最近5年133个Java面试问题列表 Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来 ...

  3. java面试宝典(蓝桥学院)

    Java面试宝典(蓝桥学院) 回答技巧 这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的学生在笔试/面试时更好地赢得好的结果.由于这套试题涉及的范围 ...

  4. JAVA面试精选【Java基础第一部分】

    这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童 ...

  5. Java面试必备知识

    JAVA面试必备知识 第一,谈谈final, finally, finalize的区别. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可 ...

  6. java面试和笔试大全 分类: 面试 2015-07-10 22:07 10人阅读 评论(0) 收藏

    2.String是最基本的数据类型吗? 基本数据类型包括byte.int.char.long.float.double.boolean和short. java.lang.String类是final类型 ...

  7. 近5年133个Java面试问题列表

    Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入. 在我 ...

  8. java 面试

        115个Java面试题和答案——终极列表(上) 本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的章节分为上下两篇,第一 ...

  9. 【Java面试】基础知识篇

    [Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充.源码分享见个人公告.Ja ...

随机推荐

  1. Git_期末总结

    终于到了期末总结的时刻了! 经过几天的学习,相信你对Git已经初步掌握.一开始,可能觉得Git上手比较困难,尤其是已经熟悉SVN的童鞋,没关系,多操练几次,就会越用越顺手. Git虽然极其强大,命令繁 ...

  2. HDU 4727 The Number Off of FFF (水题)

    The Number Off of FFF Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  3. datagrid在MVC中的运用04-同时添加搜索和操作区域

    本文介绍在datagrid上同时添加搜索和操作区域. 仅仅是增加操作区域 □ 方法1 $('#dg').datagrid({ toolbar: '#tb' }); <div id="t ...

  4. MVC文件上传04-使用客户端jQuery-File-Upload插件和服务端Backload组件实现多文件异步上传

    本篇使用客户端jQuery-File-Upload插件和服务端Badkload组件实现多文件异步上传.MVC文件上传相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小  ...

  5. NPOI读取Excel日期类型单元格返回一串数字问题

    public string getCellStringNEW(int row, int column) { try { ICell cell = xlSheet.GetRow(row).Cells[c ...

  6. ldap、additional info: no global superior knowledge

    /usr/local/openldap/bin/ldapadd -x -D 'cn=Manager,dc=duxingyu,dc=com' -W -f init.ldif Enter LDAP Pas ...

  7. std::vector 两种操作的比较

    swap assign 这里只想说明这三种操作的用处和效率.swap和assign都可以用在将一个vector的内容全部复制给另外一个vector,区别是swap会改变源vector,而assign会 ...

  8. C/C++ 读取16进制文件

    1.为什么有这种需求 因为有些情况需要避免出现乱码.不管什么编码都是二进制的,这样表示为16进制就可以啦. 2.如何读取16进制文件 最近编程用这一问题,网上查了一下,感觉还是自己写吧. 16进制数据 ...

  9. 《Small Memory Software:Patterns For System With Limited Memory》读书笔记

    原文地址:http://blog.csdn.net/jinzhuojun/article/details/13297447 虽然摩尔定律让我们的计算机硬件得以以指数速度升级,但反摩尔定律又不断消减这些 ...

  10. ubuntu14.04开启root用户 设置root密码 配置国内镜像源 设置分辨率

    一.Ubuntu 默认是不允许 root 通过 ssh 直接登录的,可以修改 /etc/ssh/sshd_config,设置 1 PermitRootLogin yes 然后重启 ssh 服务即可 1 ...