Day_15 链表体系结构和红黑树

LinkedHashSet
LinkedHashSet<E> : 元素不重复,元素无索引,元素存取有序

LinkedHashSet<E>HashSet<E> 的子类;
数据结构之树结构
树结构常识

请添加图片描述

红黑树结构

请添加图片描述

红黑树添加元素的规律(了解)

请添加图片描述

TreeSet
TreeSet<E> : 元素不重复,元素可以排序(元素存取无序),元素无索引

常用的对象类型默认排序规则:
	整数存储在TreeSet集合中默认升序!!
    字符串存在TreeSet集合中默认按照ASCII码升序排序!!
        注意事项 : 越靠前的字符ASCII码优先级越高
比较器接口
比较器接口 : 用来给排序提供排序规则的
Comparable绑定比较器
为什么取名字叫绑定比较器:
	Comparable<E>是和要排序的类型绑定在一起的,所有此类的对象都会按照这个规则进行排序!!
        
Comparable<E> 比较器接口中 有且仅有一个抽象方法:
	int compareTo(E o) : 重写此方法,就是在提供排序规则!!
        
结论 : 
	升序 -> this - o
	降序 -> o - this
Comparator独立比较器
为什么取名字叫独立比较器:
	Comparator<E>是跟随排序的容器走的,不会被泛型类的排序规则左右.优先级独立比较器高于绑定比较器的
	
在TreeSet集合的构造方法中:
	TreeSet(Comparator<E> comparator) 
        
Comparator<E>独立比较器接口中 有且仅有一个抽象方法:
	int compare(E o1,E o2) : 重写此方法,就是在提供排序规则!!
      
结论 : 
	升序 -> o1 - o2
	降序 -> o2 - o1        
数组排序和List集合排序
数组排序 : --> Arrays
	默认排序(底层是快排,默认升序) : static void sort(int[] a)  
    指定排序规则(使用独立比较器,规则自定义) : static void sort(T[] a, Comparator<T> c) 
    
List集合排序 : --> Collections(单列集合的工具类)   
    默认排序 : static void sort(List<T> list) 
        //默认按照集合泛型提供的排序规则进行排序!!
    指定排序规则(使用独立比较器,规则自定义) : static void sort(List<T> list, Comparator<T> c)   
Collections
static <T> boolean addAll(Collection<? super T> c, T... elements)  : 快速往集合中添加元素
static void shuffle(List<?> list) : 随机打乱集合中的元素顺序
 
static <T> int binarySearch(List<T> list, T key) : 使用二分查找法查找key元素
	//注意使用此方法,会要求集合的泛型类必须提供排序规则
static <T> int binarySearch(List<? extends T> list, T key, Comparator<? super T> c)  
    
static <T> void copy(List<? super T> dest, List<? extends T> src) : dest-> 目标集合 src:原集合  

static <T> void fill(List<? super T> list, T obj)  : 把第二个参数填充到第一个参数集合中
双列集合的概述
由两根单列集合组成的集合 叫双列集合;

请添加图片描述

双列集合的体系结构

请添加图片描述

HashMap<K,V>类
创建对象:
	HashMap<K,V> 集合名 = new HashMap<K,V>();
	K: 键集元素类型  V: 值集元素类型
		//使用时拿具体的引用数据类型替换K,V即可
		
增删改查四类功能:/:  //当添加的键存在于集合中就修改此键对应的值
		* V put(K key, V value) : 添加一对隐射关系
		 	//添加成功返回 null  添加失败返回老元素:
		* V remove(Object key) : 根据传入的键删除集合中这一对隐射关系,并返回值
		* boolean remove(K key,V value):根据传入的键值对,删除集合中的一对隐射关系,返回删除是否成功
		 void clear(): 清空集合
	查 :
		* V get(Object key) :  根据传入的键找对应的值 -> 丈夫找媳妇
		* int size() : 集合的长度,集合中有多少对映射关系!!
             
         //是否包含!!    
         boolean containsKey(Object key) 
 		 boolean containsValue(Object value) 
 
         boolean isEmpty(): 是否为空
         
        *  Set<K> keySet() : 获取所有的键并存入到set集合中 -> 召集所有的丈夫
          Collection<V> values() : 获取所有的值并存入到Collection集合中 -> 召集所有的媳妇  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值