首页 > 其他分享 >MapAndSet

MapAndSet

时间:2022-08-17 19:33:46浏览次数:58  
标签:返回 Map 元素 给定 集合 null MapAndSet

Map
1. Map它是一个双列集合和Collection集合是一种并列关系
2. Map中的Key和Value是一一映射关系
3. Map中的key和value都可以存储null值
4. Map中的key要求唯一不重复
5. 常用实现类:HashMap HashTable TreeMap LinkedHashMap Properties

HashMap:
1.HashMap() 构造一个默认的初始容量的空 HashMap(16)和默认的加载因子(0.75)。
2. HashMap中存储的元素不能保证是有序的(既不能保证带有排序的特性,也不能保证存入和取出的顺序是一致)
TreeMap:
特点:
1.它是Map的实现类,并且同时实现了SortedMap接口,在TreeMap内部带有排序的特性
2.它的底层使用的是红黑树结构
3.它不需要进行容器初始化,也不需要扩容
4.它不允许存储null键和null值
5.在TreeMap当中判断两个Key是否相等依据:compareTo(Object 0)或者compare(Object o1,Object o2)
常用API方法:
1. Map.Entry<K,V> ceilingEntry(K key) 返回的键值映射与最关键的大于或等于给定的键,或 null如果没有这样的关键。
2. Map.Entry<K,V> floorEntry(K key) 返回的键值映射与最大的小于或等于给定的键,或 null如果没有这样的关键。
3. K ceilingKey(K key) 最关键的收益大于或等于给定的键,或 null如果没有这样的关键。
4. K floorKey(K key) 返回最大关键小于或等于给定的键,或 null如果没有这样的关键。
5. Map.Entry<K,V> firstEntry() 返回一个与该图的最小密钥相关的键值映射,或 null如果Map是空的。
6. Map.Entry<K,V> lastEntry() 返回一个与该Map的最大密钥相关的键值映射,或 null如果Map是空的。
7. Map.Entry<K,V> higherEntry(K key) 返回的键值映射与最关键严格大于给定的键,或 null如果没有这样的关键。
8. Map.Entry<K,V> lowerEntry(K key) 返回的键值映射与最大的关键严格小于给定的键,或 null如果没有这样的关键。
9. SortedMap<K,V> subMap(K fromKey, K toKey) 返回从这个Map的键范围从 fromKey,包容的部分 toKey,独家。
LinkedHashMap:
特点:
   1. 它是HashMap的子类,继承了HashMap的特性
   2. 它的底层采用的是哈希表+链表结构,能够保证存入元素是有序的(存入和取出的顺序是一致的)
   3. 它允许存储null元素
  4. 它需要进行容器初始化
   5. 它也需要进行动态扩容
HashTable集合类
特点:
   1. 它是Map接口的实现类
  2. 它不允许存储null值
  3. 它的底层使用的是哈希表结构
   4. 它需要进行容器初始化 Hashtable() 构建一个新的空哈希表默认初始容量(11)和负载因子(0.75)。
  5. 它也需要进行动态扩容
  6. 它是线程安全的
   7. 在jdk1.2之后 建议使用HashMap类
常用的API方法
 1. Enumeration<V> elements() 返回哈希表中的值的枚举。 value值
Properties:
特点:
   1. 它是HashTable的子类,主要用于对properties文件的读写操作
   2. 它的key和value值的数据类型都是字符串类型
  3. 对Properties集合进行检索和设置通过getProperty()和SetProperty()方法来实现的
Collections 
     是Java集合当中的一个工具类
Arrays
     它是Java数组当中的一个工具类
常用的API方法:
  1. static <T> boolean addAll(Collection<? super T> c, T... elements) 将所有指定的元素添加到指定的集合中。
   2. static void reverse(List<?> list) 反转指定列表中元素的顺序。
   3. static void shuffle(List<?> list) 随机置换指定列表使用随机默认源。更改存储的位置
    4. static <T> void sort(List<T> list, Comparator<? super T> c) 根据指定的比较器指定的顺序对指定的列表进行排序。
Vector集合类:
特点:
1. 这个类是从jdk1.0开始出现的,里面的操作API和ArrayList几乎相同,从jdk1.2之后,如果不要求线程安全,建议使用ArrayList
2. Vector是线程安全的
3. Vector底层使用的是一个对象数组进行存储的
4. Vector初始容量为10
常用的API方法:
1. void addElement(E obj) 添加指定的组件到这个向量的结束,增加其大小由一个。
2. int capacity() 返回此向量的当前容量。
3. Enumeration<E> elements() 返回此向量的组件的枚举。
4. void sort(Comparator<? super E> c) 分类列表使用提供的 Comparator比较元素。
总结下:
ArrayList与LinkedList、Vector之间有什么区别与联系?
ArrayList与LinkedList异同:
1. ArrayList底层是一个数组结构,需要进行容器初始化,LinkedList是一个双向链表结构,不需要容器初始化
2. ArrayList容器需要进行扩容,每次扩容的大小为原来的1.5倍,LinkedList不需要进行扩容
3. ArrayList的检索效率相对较高,如果频繁进行扩容和添加删除元素,效率相对较低,
LinkedList的检索效率相对较低,添加和删除元素效率相对较高,创建一个新结点,更新下引用地址即可
ArrayList和Vector异同
1. ArrayList是一个线程不安全的,执行效率相对较高,而Vector是一个线程安全的,执行效率相对较低
2. ArrayList扩容每次为原来的1.5倍,Vector扩容每次为原来的2倍
HashSet的扩容机制:
初始创建的容量大小为16,并且指定负载因子为0.75
当容器当中添加的元素数量 > capacity * loadFactor 需要进行扩容
  扩容的大小为原来的2倍
LinkedHashSet:
   保留了父类HashSet当中的API方法,继承了HashSet当中的特点
   该集合元素是有序的,通过它的新添加的链表来确定存储元素的顺序
TreeSet集合:
   1. 它是Set接口的一个实现类
   2. 它的底层使用的是红黑树结构来存储元素的
  3. 它实现了SortedSet接口,TreeSet集合可以保证集合元素带有排序的特性
   4. 存放的元素的类型必须实现Comparable接口 重写compareTo()方法
常用的API方法:
     1. E ceiling(E e)返回最小的元素在这组大于或等于给定的元素,或 null如果没有这样的元素。     2. E floor(E e)返回最大的元素在这组小于或等于给定的元素,或 null如果没有这样的元素。     3. E first()返回当前在该集合中的第一个(最低的)元素。     4. E last()返回当前在该集合中的最后(最高)元素。     5. E higher(E e)返回最小的元素在这套严格大于给定的元素,或 null如果没有这样的元素。     6. E lower(E e)返回最大的元素在这套严格小于给定的元素,或 null如果没有这样的元素。     7. E pollFirst()检索并移除第一(最低)的元素,或返回 null如果这集是空的。     8. E pollLast()检索和删除最后(最高)的元素,或返回 null如果这集是空的。     9. SortedSet<E> subSet(E fromElement, E toElement)返回从这个集合的元素范围从 fromElement,包容的部分 toElement,独家。
     

搜索

复制

1. E ceiling(E e) 返回最小的元素在这组大于或等于给定的元素,或 null如果没有这样的元素。
* 2. E floor(E e) 返回最大的元素在这组小于或等于给定的元素,或 null如果没有这样的元素。
* 3. E first() 返回当前在该集合中的第一个(最低的)元素。
* 4. E last() 返回当前在该集合中的最后(最高)元素。
* 5. E higher(E e) 返回最小的元素在这套严格大于给定的元素,或 null如果没有这样的元素。
* 6. E lower(E e) 返回最大的元素在这套严格小于给定的元素,或 null如果没有这样的元素。
* 7. E pollFirst() 检索并移除第一(最低)的元素,或返回 null如果这集是空的。
* 8. E pollLast() 检索和删除最后(最高)的元素,或返回 null如果这集是空的。
* 9. SortedSet<E> subSet(E fromElement, E toElement) 返回从这个集合的元素范围从 fromElement,包容的部分 toElement,独家。

标签:返回,Map,元素,给定,集合,null,MapAndSet
From: https://www.cnblogs.com/grix/p/16596511.html

相关文章