Java面经整理_Collection
2017-12-11 14:41
267 查看
1.说出ArrayList、LinkedList、Vector的区别。
2.HashSet,TreeSet的区别
HashSet:
TreeSet:
3.Hashtable和HashMap的区别联系
**4.使用HashSet 存储自定义对象,为什么需要重写hashCode()和**equals()?
1.Arraylist底层采用数组方式存储数据,有索引,允许重复元素,适合查询,不适合插入删除。 2.LikedList底层采用双向链表存储数据,插入删除数据较快,查找慢。 3.Vector和ArrayList类似,使用了synchronized,是线程安全的,所以性能上比ArrayList差。
2.HashSet,TreeSet的区别
HashSet:
1.不能保证元素的排列顺序,顺序有可能发生变化 2.不是同步的 3.集合元素可以是null,但只能放入一个null 4.HashSet集合判断两个元素相等的标准是两个对象通过equals方法比较相等,并且两个对象的hashCode()方法返回值相等
TreeSet:
1.TreeSet是SortedSet接口的唯一实现类,TreeSet可以确保集合元素处于排序状态。 2.TreeSet判断两个对象不相等的方式是两个对象通过equals方法返回false,或者通过CompareTo方法比较没有返回0。
3.Hashtable和HashMap的区别联系
1.HashMap不是线程安全的,是map的子接口,键不能重复,允许null。 2.HashTable是线程安全的,继承自Dictionary,键不能重复,不允许null,所以HashTable的性能是低于HashMap的。
**4.使用HashSet 存储自定义对象,为什么需要重写hashCode()和**equals()?
1.HashSet 存储用的哈希表结构,哈希表需要用到hashCode()和equals()方法: hashCode()产生hash 值以计算内存位置; 当hash 值相同时要调用equals()方法进行比较。 2.如果不重写,调用的是Object 的hashcode,而Object 的hashCode 实际上是地址。系统类已经覆盖了hashCode 方法。 3.所以HashSet 存储自定义对象的化要重写hashCode()和equals()方法,目的是告诉程序去除重复元素的策略。
相关文章推荐
- java面经整理(1)
- java类集整理collection map iterator listiterator list set enumeration
- 学习整理——Java集合Collection
- 关于java中的collection(整理)
- java面经整理(5)
- java面经整理(3)
- 转载:[Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
- java Collection集合知识点整理(疯狂java讲义读书笔记)
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
- java面经整理(2)
- java面经整理(4)
- 6.21 java初级开发面经4~7K
- Java线程让步_动力节点Java学院整理
- Java中MyEclipse快捷键整理
- java collection.frequency方法
- Java编译命令整理
- JAVA SE篇--04 Collection框架及List集合操作
- 蓝桥杯2014年以前JAVA历年真题及答案整理——猜算式
- leetcode整理(java)