java集合类,collection,list,set,map

1 篇文章 0 订阅
1 篇文章 0 订阅


list数组集合,set不允许有相同的值存入,map是键值对(key--value)。

list

       ArrayList和LinkedList的区别:

ArrayList:自动增长的数组,查询效率比较高,但是添加和删除效率比较低,如果一开始有大量的数据确定加入,而不是动态的添加,可以用ensureCapacity方法加入一下,这样效率可以高一点;

LinkedList:是用双向循环链表实现的,查询效率低,但添加和删除效率高;

都是线程不安全

        ArrayList和Vector的区别:

ArrayList:线程不安全,但相应的效率会高一点;

Vector:线程安全,同样相应的效率会低一点;

他们两个一旦数量超过原先规定的大小,动态增加的时候,不是只增加一个存储单元,而是一定量

set

set中怎么判断两个值是否相同? Object中equals和hashcode基本是所有类都要继承重写的方法,在set比较两个值的时候会用到;

首先会用hashcode()判断两个值是否相同,如果相同则调用equals()方法比较,如果也相同则代表两个值相同;(两个对象如果hashcode一样,.equals不一定一样;.equals一样,hashcode一定一样)

而Treeset不会用到这种方法

Treeset用的是comparator接口,而且Treeset中元素是排好序的,这个特点也是得益于comparator接口,comparatorTo()方法返回整型,如果当前对象大于参数对象就返回正数,等于就返回0,小于就返回负值

map:     

map中为key--value,遍历里的话:

先调用keyset()得到key的set集合;

遍历得到的key的集合;

根据key值得到value值;

        hashmap和hashtable的区别:

hashmap允许key为空,线程不安全,但效率较高;

hashtable不允许key为空,线程安全,效率较低,现在使用比较少;


     





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值