对任意一组输入数据进行计算,得到一个固定长度的输出摘要。 哈希算法最重要的特点就是: 相同的输入一定得到相同的输出; 不同的输入大概率得到不同的输出。
用大白话讲就是输入一个索引,得到的就是这个索引所对应的唯一元素,不论输入多少次,只要是输入内容相同,输出的元素也会相同,在哈希数组链表中,输入一个元素,因为这个元素要与索引的值唯一对应,所以数组链表的值也必须唯一,所以这就利用了Set的特性去去除重复元素
注:会打乱原先输入的顺序!!
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Set<String> set = new HashSet<String>();
for (int x = 0; x < 5; x++) {
String input = scanner.nextLine();
set.add(input);
}
System.out.print(set);
scanner.close();
}
}
输入输出:

想要和输入值一样的顺序可以用哈希有序链表:
import java.util.LinkedHashSet;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
LinkedHashSet<String> set = new LinkedHashSet<String>();
for (int i = 0; i < 5; i++) {
String input = scanner.nextLine();
set.add(input);
}
System.out.print(set);
scanner.close();
}
}
输入输出:

本文探讨了哈希算法的基本特性,强调其在输入相同情况下输出恒定及不同输入产生不同输出的概率。通过Java代码示例展示了使用HashSet和LinkedHashSet如何实现数据去重。HashSet不保持输入顺序,而LinkedHashSet则能保持插入顺序。这两个数据结构在处理输入数据时,确保了元素的唯一性。
281

被折叠的 条评论
为什么被折叠?



