对任意一组输入数据进行计算,得到一个固定长度的输出摘要。 哈希算法最重要的特点就是: 相同的输入一定得到相同的输出; 不同的输入大概率得到不同的输出。
用大白话讲就是输入一个索引,得到的就是这个索引所对应的唯一元素,不论输入多少次,只要是输入内容相同,输出的元素也会相同,在哈希数组链表中,输入一个元素,因为这个元素要与索引的值唯一对应,所以数组链表的值也必须唯一,所以这就利用了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();
}
}
输入输出: