zoukankan      html  css  js  c++  java
  • Collection和Map集合

    前言

    集合的长度是可变的、集合存储的都是对象。而且对象的类型可以不一致。
    Collection集合和Map集合是所有集合的父接口。

    Collection接口定义

    体系结构的根接口,代表一组对象,有两个子接口List、Set接口。

    • List接口: 有序,有下标,元素可重复。
    • Set接口: 无序,无下标,不能重复。

    Collection接口抽象方法

    • public boolean add(E e): 把给定的对象添加到当前集合中 。
    • public void clear() :清空集合中所有的元素。
    • public boolean remove(E e): 把给定的对象在当前集合中删除。
    • public boolean contains(E e): 判断当前集合中是否包含给定的对象。
    • public boolean isEmpty(): 判断当前集合是否为空。
    • public int size(): 返回集合中元素的个数。
    • public Object[] toArray(): 把集合中的元素,存储到数组中。
    • default Stream<E> parallelStream():把集合转变成流对象,进行Lambda表达式的使用。

    Collection接口主要实现类

    • ArrayList: 底层采用数组实现,有序,查询快,增删慢。
    • LinkedList: 底层采用双向链表实现,有序,查询慢,增删快。
    • LinkedHashSet: 底层采用散列表实现,使用链表+红黑树的搭配解决哈希冲突的问题,无索引、不可以存储重复元素,但是多了一个维护数据存储顺序的链表。
    • HashSet:底层采用散列表实现,使用链表+红黑树的搭配解决哈希冲突的问题,无索引、不可以存储重复元素、存取无序。

    Map接口定义

    元素是成对存在的。每个元素由键与值两部分组成,通过键可以找对所对应的值。

    Map接口抽象方法

    • public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。
    • public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
    • public V get(Object key): 根据指定的键,在Map集合中获取对应的值。
    • boolean containsKey(Object key): 判断集合中是否包含指定的键。
    • public Set<K> keySet(): 获取Map集合中所有的键,存储到Set集合中。
    • public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。

    Map接口主要实现类

    • HashMap: 底层采用散列表+链表+红黑树,线程不安全的Map。
    • HashTable: 现已不推荐使用,使用ConcurrentHashMap进行替换。但是他有一个子类Properties类,唯一一个和文件读取打交道的集合类。多用于配置文件的读取
    • ConcurrentHashMap: jdk1.8底层采用CAS+Synchronize技术来保障线程安全。底层采用数组+链表+红黑树的存储结构,也就是和HashMap一样。
    • LinkedHashMap:底层用的是链表来进行的存储,有序
    Properties文件读取类
    定义:

    是Java 语言的配置文件所使用的类。

    常用方法:
    • public synchronized void load(Reader reader) throws IOException: 加载需要读取的配置文件。
    • public void store(Writer writer, String comments)throws IOException: 加载需要写入的配置文件。
    • public String getProperty(String key): 根据Key获取对应的value, key=value
    • public synchronized V put(K key, V value):存储要写入的key和value。
    • public void list(PrintStream out):遍历集合,输出所有的key和value。

    tips:集合中key不能重复。

    XFS
  • 相关阅读:
    重塑矩阵
    买卖股票
    两个数组的交集
    洛谷 P3700
    HDU 6987
    Solution -「NOI 2021」「洛谷 P7740」机器人游戏
    「NOI 2021」酱油记
    Solution -「UNR #5」「UOJ #671」诡异操作
    CD from Codeforces Round #703 (Div. 2)
    CD from Codeforces Round #701 (Div. 2)
  • 原文地址:https://www.cnblogs.com/xiaofengshan/p/14675156.html
Copyright © 2011-2022 走看看