您现在的位置是:首页 >技术教程 >Leetcode Hot100-哈希篇-集合-Collection网站首页技术教程

Leetcode Hot100-哈希篇-集合-Collection

55_394 2025-07-30 12:01:04
简介Leetcode Hot100-哈希篇-集合-Collection

Collection集合:

基本功能

增add 删remove 查contains 清空clear 集合->数组toArray

遍历方式

1.迭代器

Collection<String> a = new ArrayList<>();
a.add('hello');
a.add('World');

Iterator<String> it = a.iterator();

While(it.hasNext()){
String tt=it.next();
System.out.println(tt);
}

2.增强for循环List Set均可用

for(String one:a){}

3.Lambda表达式(简化版)

a.forEach(System.out::println)
并发业务遍历异常处理(漏删)

for循环(支持索引的List集合中可用)

解决方法:list.remove(a1)1.正序遍历在循环中做i--操作。

2.倒序遍历,起点为size-1。

迭代器

使用迭代器自身提供的remove方法 it.remove();

<!-其余两种方式无法解决 增强for底层是基于迭代器实现的>

List系列集合: 有序(按照输入顺序) 可重复 有索引

独有方法 add(指定位置加元素) remove set get

1.ArrayList底层基于数组存储

第一次添加数据时扩容 默认为10

2.LinkedList底层基于链表存储

Set系列集合

Set<String> set = new LinkedHashSet<>();
1.HashSet 无序 不重复 无索引(底层基于哈希表存储)

哈希表=数组+链表+红黑树

哈希存储过程:

哈希值:

当所占位数>默认长度*加载因子时,扩容一倍;JDK8开始,当链表长度>=64位时,自动将链表转化为红黑树。

--去重不完整--保证相同对象类属性相同的对象去重

右键->Generate->hasCode() equals()方法

2.LinkedHashSet 有序 不重复 无索引

3.TreeSet 排序 不重复 无索引 (底层基于红黑树实现的排序)

无法直接对object对象排序,实现比较方法如下:

1.对象类(实体类)实现一个comparable比较接口,重写compareTo方法,指定大小比较规则

public int comparableTo(teacher a){
if(this.getAge()>a.getAge()) return 1;
//左边小于右边 return -1 相等 return 0(age相同的信息只保留一个)
//或者直接 return this.getAge()-a.getAge(); 升序
}

2.TreeSet集合自带的comparator对象

如果是要比较对象是Double类型

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。