Java小白学习笔记 Collection 集合

常用集合

Collection常用方法

add()添加

remove()移除

isEmpty()是否为空

 contains()元素是否存在

toArray()转数组

 iterator()迭代器

ArrayList 

可变数组元素有序可重复

初始长度为10,当容量不够时自动扩容为当前的1.5倍,10,10*1.5,10*1.5*1.5....

底层为数组,在执行增加或者删除操作的时候会创建新数组,效率不高,但得力于下标的设计,查询速度很快,适用于查询较多的环境,*查询块增删慢

LinkedList

底层为链表,元素有序,可重复

除首位节点,每个节点都只知道相邻两节点的位置,在增加和删除时有较高的效率,*查询慢,增删较快

 

Set

无序,元素不能重复,当存储类型为自定义的类时,需要重写类中的toString()、HashCode()、equal()方法

public class MyTest {
    public static void main(String[] args) {

        HashMap<Character, Integer> map = new HashMap();
        //键盘输入一串字符
        String str = new Scanner(System.in).nextLine();

        for (int i = 0; i < str.length(); i++) {
            //根据key判断字符是否出现过,若第一次出现则以  key,1的形式加入
            if (!map.containsKey(str.charAt(i))){
                map.put(str.charAt(i),1);
            }else{
                //若出现过则获取对应key的value值+1,再重新赋值(),重复的key会覆盖之前的value
                int i1 = map.get(str.charAt(i)) + 1;
                map.put(str.charAt(i),i1);
            }
        }
        System.out.println(map);

    }
}

HashMap

底层是Entry[K,V]数组,初始容量为16,当使用量达到75%自动扩容为原来约2倍

Key值唯一不能重复,Value可以

存储时表现为  hash(K) % n   放在余数的位置  当取余重复时,一链表形式挂在位置后面

Entry[K,V]数组长度

当Entry[K,V]数组大于64且链表长度大于8 会转化为红黑树,提高查询效率

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值