zoukankan      html  css  js  c++  java
  • java学习--基础知识进阶第七天--笔记

    今日内容
    Set
    Map

    集合的体系
    单列集合
    Collection
      |-List:有序,有索引,可以存储重复元素
        |-ArrayList:底层是数组结构
        |-LinkedList:底层是链表结构
      |-Set:无序,无索引,不能存储重复元素
        |-HashSet:底层是哈希算法
        |-LinkedHashSet:唯一一个可以保证有序的、不能存储重复元素的类,没有自己的方法,全部继承自父类
    双列集合
    Map
      |-HashMap

    Set接口
    HashSet存储字符串并遍历
    步骤:
    // 创建集合
    // 添加元素,使用add
    // 遍历

    HashSet存储自定义对象并遍历
    HashSet保证元素唯一性的原理
    add()方法底层依赖于hashCode()和equals()
    首先执行hashCode()获取哈希值
    如果哈希值不同,则直接添加
    如果哈希值相同,在调用equals()方法,如果结果相同,表示是相同元素,就不添加
    如果equals()方法的结果不相同,则直接添加

    注:hashCode()方法一定会执行,但是equals()方法不是一定会执行

    Collections工具类
    常用方法
    static int binarySearch(List list, Object key) 使用二分查找法查找指定元素在指定列表的索引位置
    static void copy(List dest, List src) :是把源列表中的数据覆盖到目标列表
    static void fill(List list, Object obj) :使用指定的对象填充指定列表的所有元素
    static void reverse(List list) :反转
    static void shuffle(List list):随机置换
    static void sort(List<T> list) :按照列表中元素的自然顺序进行排序
    static void swap(List list, int i, int j) :将指定列表中的两个索引进行位置互换

    斗地主洗牌发牌游戏

    Map
    Map的概述
    将键映射到值的对象,存储的是键值对数据
    键唯一,如果键相同,值覆盖,每一个键对应一个值,值不是唯一的

    add("张三");
    add("李四");

    //put("张三",18);
    put("张三",19);
    put("李四",18);
    Map和Collection的区别
    Map是双列集合的顶层接口,存储的是键值对这样有对应关系的一对数据,键不能重复
    Collection是单列集合的顶层接口,存储的是单个数据,子体系不同,有不同的特点,
    List是有序有索引可以存储重复,Set是无序索引不能存储重复

    Map接口中的方法
    添加
    V put(K key,V value):添加键值对,如果键不存在,返回null,如果键存在,值替换,返回被替换的值
    获取
    int size():获取键值对的对数
    V get(Object key):根据键获取值
    Set<K> keySet():获取所有的键的集合
    Collection<V> values():获取所有的值的集合
    删除
    void clear():清空map集合
    V remove(Object key):根据键删除键值对,返回对应的值

    判断功能
    boolean containsKey(Object key):判断是否包含指定的键
    boolean containsValue(Object value):判断是否包含指定的值
    boolean isEmpty():判断是否为空

    Map的两种遍历方式
    方式一:keySet()和get(Object key)

    方式二:entrySet()获取所有的键值对对象的Set集合,遍历Set集合获取每一个键值对对象Map.Entry,再
    通过Entry中的getKey()和getValue()方法获取键和值

    Map集合存储元素,键为自定义对象
    需要重写自定义类的hashCode()和equals()方法

  • 相关阅读:
    949. Largest Time for Given Digits
    450. Delete Node in a BST
    983. Minimum Cost For Tickets
    16. 3Sum Closest java solutions
    73. Set Matrix Zeroes java solutions
    347. Top K Frequent Elements java solutions
    215. Kth Largest Element in an Array java solutions
    75. Sort Colors java solutions
    38. Count and Say java solutions
    371. Sum of Two Integers java solutions
  • 原文地址:https://www.cnblogs.com/bigorangehasc/p/8639464.html
Copyright © 2011-2022 走看看