基础知识点总结8

1.了解Collections集合工具类的常用方法。了解Comparator比较器和可变参数args。

在这里插入图片描述

可变参数:
概述:在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化
格式:
修饰符 返回值类型 方法名(参数类型… 形参名){ }
注意:
1.一个方法只能有一个可变参数
2.如果方法中有多个参数,可变参数要放到最后

2.总结Set接口:HashSet,LinkedHashSet,TreeSet的相关知识。

Set接口都会以某种规则保证存入的元素不出现重复。
在这里插入图片描述

Set集合有多个子类,这里我们介绍其中的java.util.HashSet、java.util.LinkedHashSet、java.util.TreeSet这三个集合。

**HashSet:**是根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存储和查找性能。保证元素唯一性的方式依赖于:hashCode与equals方法。

HashSet集合存储数据的结构:哈希表结构(数组+链表+红黑树)
jdk8以前: 哈希表(数组+链表)
jdk8以后:
没有超过8个: 哈希表(数组+链表)
超过8个: 哈希表(数组+链表+红黑树)
HashSet集合保证元素唯一依靠:hashCode()和equals()方法
原理:
(1)当集合存储元素的时候,会调用该元素的hashCode()方法计算哈希值
(2)判断该哈希值的位置上是否有相同哈希值的元素
(3)如果该位置上没有相同哈希值的元素,就直接存储
(4)如果该位置上有相同哈希值的元素,就产生了哈希冲突
(5)产生了哈希冲突,就会调用该元素的equals方法,与该哈希值位置上的所有元素进行一 一比较:
如果比较完之后,该位置上没有一个元素与该元素相同,就直接存储;
如果比较完之后,该位置上有任意一个元素与该元素相同,就不存储
给HashSet中存放自定义类型元素时,需要重写对象中的hashCode和equals方法,建立自己的比较方式,才能保证HashSet集合中的对象唯一.
LinkedHashSet:它是链表和哈希表组合的一个数据存储结构。存放数据有序。
TreeSet:(不太长用)集合是Set接口的一个实现类,底层依赖于TreeMap,是一种基于红黑树的实现,其特点为:
(1)元素唯一
(2)元素没有索引
(3)使用元素的自然顺序对元素进行排序,或者根据创建 TreeSet 时提供的 Comparator 比较器进行排序,具体取决于使用的构造方法:
在这里插入图片描述
在这里插入图片描述

3.掌握Map集合的特点,知道Map的常用子类,能够简单介绍Map的常用方法

Map集合的特点
• 存储元素是以键值对的形式存储
• Map集合中的键是唯一的,值是可以重复的
• 获取元素:是根据键找值
• Map集合中的键如果重复了,就会覆盖
• HashMap<K,V>:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
• LinkedHashMap<K,V>:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
• TreeMap<K,V>:TreeMap集合和Map相比没有特有的功能,底层的数据结构是红黑树;可以对元素的键进行排序,排序方式有两种:自然排序和比较器排序
在这里插入图片描述

4.Map的遍历(重点)。

方式1:键找值方式
通过元素中的键,获取键所对应的值
分析步骤:
(1)获取Map中所有的键,由于键是唯一的,所以返回一个Set集合存储所有的键。方法提示:keyset()
(2)遍历键的Set集合,得到每一个键。
(3)根据键,获取键所对应的值。方法提示:get(K key)
方式2:键值对方式
步骤:
(1)获取Map集合中,所有的键值对(Entry)对象,以Set集合形式返回。方法提示:entrySet()。
(2)遍历包含键值对(Entry)对象的Set集合,得到每一个键值对(Entry)对象。
(3)通过键值对(Entry)对象,获取Entry对象中的键与值。 方法提示:getkey() getValue()

Eg:方式一遍历
Set keySet = map.keySet();
for(Student key: keySet){
String value = map.get(key);
System.out.println(key.toString()+"…"+value);
}
方式二遍历:
LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
map.put(“邓超”, “孙俪”);
map.put(“李晨”, “范冰冰”);
map.put(“刘德华”, “朱丽倩”);
Set<Entry<String, String>> entrySet = map.entrySet();
for (Entry<String, String> entry : entrySet) {
System.out.println(entry.getKey() + " " + entry.getValue());
}

5.会简介HashSet,LinkedHashSet,TreeSet。当问到会回答,掌握各部分对应小结即可。

TreeMap:底层的数据结构是红黑树;
可以对元素的键进行排序,排序方式有两种:自然排序和比较器排序
构造方法:
public TreeMap() 使用自然排序
如果键的类型为自定义类型,那么该键所属的类需要实现Comparable接口,在实现的抽象方法
compareTo()中指定排序规则
public TreeMap(Comparator<? super K> comparator) 比较器排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值