collection

集合体系
  • 数据结构栈和队列
    栈结构 :先进后出
    队列结构 :先进先出
  • 数据结构之数组和链表
    数组结构:查询快、增删慢
    队列结构 :查询慢、增删快
  • List集合概述
    有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素;
    与Set集合不同,列表通常允许重复的元素;
  • List集合特点
    有索引;
    可以存储重复元素;
    元素存取有序 ;
collection体系

list

q:集合中存放的是什么类型?

引用类型  存的不是对象,而是对象的引用类型,存入int型的也会自动装配成integer

q:ArrayList和linkedList区别?

ArrayList特点:结构实现,查询慢、增删快

linkedList特点: 底层是链表结构实现,查询慢、增删快

set

  • hashSet集合的特点
    元素存取无序
    没有索引、只能通过迭代器或增强for循环遍历,不能存储重复元素

    哈希值 :是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值
hashSet唯一性保证原理
  • TreeSet集合概述
    元素有序,可以按照一定的规则进行排序,具体排序方式取决于构造方法
    TreeSet():根据其元素的自然排序进行排序
    TreeSet(Comparator comparator) :根据指定的比较器进行排序
    没有带索引的方法,所以不能使用普通for循环遍历
    由于是Set集合,所以不包含重复元素的集合

Q: hashset 和Treeset 的区别是?

hashset 基于哈希表实现,无序,不重,可以放入一个null值

treeset 基于二叉树实现,有序,不重, 不允许为空

Q:HashSet是如何保证元素唯一性的呢?

是通过元素的两个方法,hashCode和equals来完成。

Q:TreeSet是如何保证元素唯一性的呢?

底层数据结构是二叉树,使用二叉树的compareTo方法return 0.

Q:Comparable和Comparator区别?

Comparator位于包java.util下需要元素对象实现Comparable接口,覆盖compareTo方法

Comparable位于包   java.lang下Comparable,需要元素对象实现Comparable接口,覆盖compareTo方法。

Q:List、Map、Set三个接口,存取元素时,各有什么特点?

List  以特定次序来持有元素,可有重复元素;

Set  无法拥有重复元素,内部排序(无序);

Map 保存key-value值,value可多值。

map

map体系
  • Map集合概述

interface Map<K,V> K:键的类型;V:值的类型

  • Map集合的特点
    键值对映射关系
    一个键对应一个值
    键不能重复,值可以重复
    元素存取无序

Q: HashMap和Hashtable的区别?

Hashtable是线程安全的 不可以存入null键null值

HashMap线程不安全  可以存入null键null值

最新文章

  1. Java多线程开发系列之三:线程这一辈子(线程的生命周期)
  2. mysql备份恢复
  3. object转化为string
  4. zabbix-web界面图形中文乱码解决方法
  5. android 逆向project smail 语法学习
  6. sql查询优化整理
  7. hdu_1370Biorhythms(互素的中国剩余定理)
  8. [再寄小读者之数学篇](2014-06-20 求极限---Jordan 不等式的应用)
  9. Go基础系列:互斥锁Mutex和读写锁RWMutex用法详述
  10. golang 开发gui
  11. Oracle 数据库逻辑结构.md
  12. C#编程经验-选择结构和循环结构
  13. Spring Http Invoker使用简介
  14. Android四大组件之一 -- Service详解
  15. 电源PI相关知识讲解
  16. IT人员如何有效规划自己时间
  17. [SHOI2008]小约翰的游戏
  18. xampp使用技巧及问题汇总
  19. window.jQuery || document.write(&quot;&lt;script src=&#39;__PUBLIC__/assets/js/jquery.js&#39;&gt;&quot;+&quot;&lt;&quot;+&quot;/script&gt;&quot;)
  20. 个人的Linux实用命令

热门文章

  1. 在Java开发工具的project中使用相对路径
  2. null是对象吗?
  3. Quartz 实现同一辅助类 重复开启多任务
  4. Redmine Notes
  5. Python语言系列-03-文件操作和函数
  6. LeetCode通关:栈和队列六连,匹配问题有绝招
  7. Skywalking-07:OAL原理——解释器实现
  8. Groovy+Spock单元测试
  9. 【js】--获取开始时间 和 截止时间中间的所有时间
  10. 关于Ubuntu18.04 linux系统使用搜狗输入法 出现乱码