集合的总结。

ArrayList

ArrayList: 书写格式

ArrayList<Object>   <>放的就是泛型,指的就是集合里面放入的数据类型。
  • 泛型的好处:
    •  省去了从集合中取出数据时的强制类型转换。
      
    •  加了泛型,就会要求我们放入数据的时候,只能放入该数据类型的数据,那么取出来的时候也是这种数据类型。
      
    •  <> 放我们指定的数据类型
      
    •    Object: 是所有类的父类
      

ArrayList的主要内容

	   1、底层是数组(Object[])
 *    2、ArrayList 元素个数  size() 方法
 *    3、增(添加):  add(元素): 数组的长度和size不是一回事,如果size()小于数组长度,直接将元素放入到数组里面。如果size()等于数组长度,会自动扩容。
 *    4、删(删除):
 *            remove(元素): 删除第一次出现的元素	
 *             remove(索引): 删除指定索引位置的元素
 *    5、改(修改):  set(索引,元素)
 *    6、查(查询):  get(索引)
 *
 *
 *   new IllegalArgumentException("Illegal Capacity: "+initialCapacity);  非法参数异常

HashSet

增强for循环
去重功能 (构造方法里面可以放集合,思路就是先把list转成set去重,然后再转成		list)
只有增删,没有改查

HashSet和HashTable的区别:

 *      1 HashSet是线程不安全的,效率高,允许null值
 *      2 HashTable是线程安全的,效率低,不允许null值
 *
 * 去重,HashSet开发时候用的比较少,一般集合都是用ArrayList
   在某些场合下也需要ArrayList去重,可以使用HashSet
  • 1、创建一个HashSet
    2、将ArrayList中的元z素全部放入HashSet中
    3、将HashSet中的元素全部放入ArrayList中

HashMap

  • 增删改查 put remove pu t get (键是唯一的,值可以重复)
    jdk8以后,底层是数组+链表+红黑树
  • 负载因子:0.75
  • 链表长度超过8转红黑树,红黑树长度小于6又转化成链表
  • HashMap初始长度16

在这里插入图片描述

	HashMap<Integer,Integer> hashmap = new HashMap<>();
        hashmap.put(1,100);
        hashmap.put(2,200);
        hashmap.put(3,300);
        hashmap.put(4,400);
       // 1. key值的集合 hashmap.keySet()
        System.out.println("hashmap.keySet() = " + hashmap.keySet());
        for (Integer key : hashmap.keySet()){
            System.out.print(key + " ");
        }
        System.out.println("\n");
        // 2.value值的集合 hash
        System.out.println("hashmap.values() = " + hashmap.values());
        for (Integer value : hashmap.values()){
            System.out.print(value + " ");
        }

        System.out.println("\n");
        
        // 3.遍历key value的值
        for (Integer key : hashmap.keySet() ){
            Integer value = hashmap.get(key);
            System.out.println(key + " : " + value);

泛型

集合里面放数据的时候,可以指定数据类型,这样从集合里面拿出数据的时候就不用做类型转换
Object: 是所有类的父类

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值