java集合的理解

java的hashMap是如何工作的。
HashMap是一个针对数据结构的键值,每个键都会有对应的值,关键是识别这样的值。
 HashMap基于hash原理,我们通过put()和set()方法存储和获取对象的,当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashCode,然后找到桶位置存储值对象的。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap底层使用LinkedList来解决碰撞问题的。当发生碰撞了。对象将会存储在LinkedList的下一个节点中。HashMap在每个LinkedList节点中存储对对象。
 然后我们知道是HashMap是非同步的、所以我们需要一个同步的HashMap时,有两个钟选择:
 第一种就是Collections.synchronizedMap()来同步HashMap
 第二种方法就是ConcurrentHashMap.这时我们即不需要锁定整个锁对象。

 java里面的容器:
 分两类,Map和Collection.而Collection有子接口List(数据存储顺序和插入顺序是一样的),Set(里面的元素具有唯一性)

 Map是存储键值对的,里面的键是不可以重复的,但值可以重复的。

 a.  对于List主要有ArrayList和LinkedList两种实现。
 实现的数据结构不同。所以主要的却比也都是和数据结构相关的。
 ArrayList基于数组的,随机访问快,而对于中间元素的插入和删除效率比较低。而且需要考虑扩容问题。
 LinkedList,则基于链表,和ArrayList提到正好相反,但对于中间的元素的插入和删除 更有效率的。

 b.         说下List,Set,Map三种结合各有什么特性
 List集合中的元素是有序可重复的
 Set集合的元素时无序不可重复的
 Map集合用key-value存放对象的,Map容器中的键对象是 不可重复的,但是值是可重复的。

 c.          HashSet和TreeSet有什么区别,什么时候用他们?
 区别:HashSet中的元素不能重复, 没有顺序的。
 TreeSet中的元素不能重复,但是有顺序的。
 当集合的元素需要排序是,用TreeSet
 一般情况下用HashSet,因为不要排序,速度比TreeSet快。
 d.         HashMap和Hashtable去什么区别,一般情况下常用那个?
 HashMap的键值都可以为空,但是线程不安全。
 Hashtable的键值都不可以为空,但是线程安全。
 一般情况下,我们都用的是HashMap.
 e.    HashMap与LinkedHashMap和TreeMap的区别
 共同点:HashMap,LikedHashMap,TreeMap都属于Map的实现类
 不同点:HashMap里面存入的键值对子啊取出来的时候是随机的。
         TreeMap取出来的是排序后的键值对。
         LinkedHashMap是HashMap的一个子类,如果需要 输出的顺序和输入的相同,那么用LinkedHashMao
         可以实现。
f    如何对一个对象排序,有几种方法
 吧对象放入List集合中,用Collection是工具类调用sort()方法进行排序,但是这个类必须实现Compable接口才行。
 吧对象放在set集合中,用treeSet()实现诶对集合排序。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值