ArrayList HashMap 666

ArrayList

HashMap

泛型循环
泛型

集合:同一类事物放在一起组成了集合。(引用数据类型,这是和数组最大的区别。)
集合:Collection(接口)父类是Iteraable(接口:功能是集合的迭代遍历)
集合的分类:
1.List(接口):有序可重复:常见的实现类:ArrauList(数组实现) LinkendList(链表实现)
2.Set(接口):无序不重复:HashSet(哈希实现)TreeSet(二叉树实现)

ArrayList:实现了LIst接口(List继承了Collection接口)

补充:一个类实现了一个接口那么我们就要重写接口里的抽象方法,也就是说,接口里的方法大家都有。
集合里的方法:主要是增删改查。
ArrayList书写格式:ArrayList <>放的就是泛型,知道就是集合里面放入的数据类型。
泛型的好处:省去了从集合中取出数据时的强制类型转换。
Object:所有类的父类
加了泛型,就会要求我们放入数据的时候,只能放入该数据类型的数据,那么取出来的时候也是该类型。
泛型是引用数据类型。

ArrayList:
1.底层是数组(Object[])
2.ArrayLIst 元素个数 是size()
3.增(添加): add(元素)
4.删:remove(元素):删除第一个出现的元素
remove(索引):删除指定位置的元素
5.改:set(索引、元素)
6.查:get(索引)
7.底层是数组:数组的长度和size不是一回事。如果size()小于数组长度,直接将元素放到数据里面。如果size()等于数组长度,会自动扩容。
8.ArrayList和inkedList的区别:
1.底层数据结构不同 数组 链表
2.ArrayList底层是数组,查询快,增删慢。
3.LinkedLisd查询慢,增删快。

hashSet:无序(没有索引) 不重复(可以去重)
for和foreach的区别:
1.for可以操作索引,但是语法结构复杂
2.foreach不可以操作索引,但是语法结构简单
3.去重:HashSet开发用的比较少,一般集合都是用ArrayList,默写场合也用ArrayList去重,可以使用HashSet。

HashMap:

  • 面试题:HashSet和HashTable的区别:
    1.HashSet是线程不安全的但效率高,允许null值,HashTable反之。
    <K、V> k:键 V:值 键唯一,值可重复。
    2.jdk8 HashMap底层是:数组+链表(超过8链表变为红黑树,红黑树长度小于6,红黑树就会变成链表)+红黑树
    (1)HashMap负载因子:0.75(元素个数超过数组长度的0.75,就会扩容两倍长度)
    (2.)HashMap初始值16

  • 个人笔记:
    size【统计个数】 name.size keyset()方法 就是把hasmap 里面的键拿出来 再声明变量把键存进去

  • 增强循环(来自day10-StaffTest):

      for (Staff a : staff) {
          if (a.getMoney() < 12000){
              staff.remove(a);
          }
      }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值