集合和韦恩图

Set

一个集合结构, 里面的数据都是唯一的, 不能重复, 无序的

Venn Graph

对于集合的可视化,第一时间想到的都是韦恩图(venn diagram),一般集合不超过5个的时候,可视化效果还是不错的;但是一旦数据集增加,比如说五个的时候,你就很难从图中解读出想要的信息了。即便你把它画的很美观,还是还是很难直观找到自己需要的信息。

一个正常的三维的韦恩图

1-5维的韦恩图

小麦A基因的韦恩图

[Draft genome of the wheat A-genome progenitor Triticum urartu](https://www.researchgate.net/publication/236087064_Draft_genome_of_the_wheat_A-genome_progenitor_Triticum_urartu)

11维的韦恩图

代码

判断一个数组是否是没有重复的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static void main(String[] args) {
String[] fruit = new String[] {"apple", "banana", "orange", "watermelon", "apple"};
System.out.println(unique(fruit));
}

private static boolean unique(String[] fruit) {
Set<String> st = new HashSet<>();
boolean flag = false;
for (String f : fruit) {
if (st.contains(f)) {
flag = false;
break;
} else {
st.add(f);
flag = true;
}
}
return flag;
}
1
2
3
4
5
6
7
8
9
public static void main(String[] args) {
String[] fruit = new String[] {"apple", "banana", "orange", "watermelon"};
System.out.println(unique(fruit));
}

private static boolean unique(String[] fruit) {
Set<String> st = new HashSet<>(Arrays.asList(fruit));
return st.size() == fruit.length;
}