page contents
Pack
Pack

性别: 注册于 2019-11-22

向TA求助
9899金币数
25230 经验值
4个粉丝
主页被访问 7663 次

1048 个回答

0 赞同

HashMap原理、哈希冲突的解决

HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,然后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储...

回答于 2021-04-25 15:10

0 赞同

hashCode()与equals()

1、如果两个对象相等,则hashcode一定也是相同的 2、两个对象相等,对两个equals方法返回true 3、两个对象有相同的hashcode值,它们也不一定是相等的(哈希冲突) 4、综上,equals方法被覆盖过,则hashCode方法也必须被覆盖 5、hashCode()的默认行为是对堆上的对象产生独特值。如果没有重写hashCode(),则该class的两个...

回答于 2021-04-25 15:09

0 赞同

如何实现数组和 List 之间的转换?

数组转 List:使用 Arrays. asList(array) 进行转换。 List 转数组:使用 List 自带的 toArray() 方法。         // list to array         List<String> list = new ArrayList<String>();         list.add("HaC");         list.add("HelloCoder");         Object[] str = list.toArray();         /...

回答于 2021-04-25 15:08

0 赞同

遍历一个 List 有哪些不同的方式?

1、for 循环遍历,基于计数器。在集合外部维护一个计数器,然后依次读取每一个位置的元素,当读取到最后一个元素后停止。 2、迭代器遍历,Iterator。Iterator 是面向对象的一个设计模式,目的是屏蔽不同数据集合的特点,统一遍历集合的接口。Java 在 Collections 中支持了 Iterator 模式。 3、foreach 循环遍历。foreach...

回答于 2021-04-25 15:07

0 赞同

ConcurrentHashMap分段锁

jdk1.7中: ConcurrentHashMap 是由 Segment 数组结构和 HashEntry 数组结构组成。Segment 是一种可重入锁 ReentrantLock,在 ConcurrentHashMap 里扮演锁的角色,HashEntry 则用于存储键值对数据。 Segment数组的意义就是将一个大的table分割成多个小的table来进行加锁,也就是上面的提到的锁分离技术,而每一个Segment...

回答于 2021-04-25 15:04

0 赞同

Collection框架中实现比较要怎么做?

第一种,实体类实现Comparable接口,并实现 compareTo(T t) 方法,我们称为内部比较器。 第二种,创建一个外部比较器,这个外部比较器要实现Comparator接口的 compare(T t1, T t2)方法。

回答于 2021-04-25 15:03

0 赞同

Collection和Collections的区别

Collection是单列集合的顶层接口,Map是双列集合的顶层接口。 Collections是一个集合的工具类,提供了排序、查找等操作集合的一些常用方法。

回答于 2021-04-25 15:03

0 赞同

HaspMap与TreeMap的区别

HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。 在Map 中插入、删除和定位元素,HashMap是最好的选择。但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。使用HashMap要求...

回答于 2021-04-25 15:01

0 赞同

ArrayList 与 Vector 的区别

共同点: 都实现了List接口,都是有序的集合,我们可以按位置的索引号取出元素,其中数据都是可以重复的,这是与hashSet最不同的,hashSet不可以按照索引号去检索其中的元素,也不允许有重复的元素。 区别: 同步性:Vector是线程安全的,即线程同步,ArrayList是不安全的,如果有多个线程访问到集合,最好使用Vector,...

回答于 2021-04-25 15:00

0 赞同

Set和List的区别

Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。都可以存储null值,但是set不能重复所以最多只能有一个空元素。 Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>。 List和数组类似,可以动态增长,根据实际存储的数据的...

回答于 2021-04-25 14:59