List、Set、Map集合的区别

List、Set、Map的区别

List和Set都是单列元素的集合,他们有共同的父接口Collection;

List中的元素是有序的可以重复;而Set中的元素是无序的,不能重复,内部排序

ArrayList、Vector、LinkedList三者的区别

三者的的父接口都是List,ArrayList和Vector都使用数组方式储存数据,索引快而插入满,ArrayList线程不安全,效率高;而Vetor反之。LinkedList使用双向链表储存数据,索引慢,插入快。如需大量增删操作 数据,使用LinkedList ;如查询比较频繁,使用ArrayList。

Set集合中判断元素是否重复的两个方法:先用hashCode()返回相同的Hash码值,再用equals()方法判断两个对象的内容;故Hash码值相同,元素不一定重复,equal()判断相等元素就一定重复

Set接口有个子接口SortedSet,TreeSet是SortedSet的实现类;将自定义类放在TreeSet中,需要实现Comparable接口(可比较接口),这个接口只定义了一个compareTo(Object o)方法,返回值是整型,如当前对象大于参数对象返回整数,等于返回0,小于返回负数,这是升序排列,反之是降序
另一个比较接口是Comparator接口(比较器接口),定义了compare(Object o1,Object o2)方法来比较两个对象,返回值定义和compareTo()方法一样。

Map是双列元素的集合;

Map以键-值对形式储存元素,键是唯一的,值可以重复;
HashMap和Hashtable的区别:

HashMap可以用null作为键和值;Hashtable不能,
HashMap不是同步的,线程不安全,效率高;Hashtable反之,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值