JAva配列パラレル/交差/差分(補完)
6143 ワード
1.説明
Javaコンテナクラスの性質を使用してコンテナを選択
2.実現
出力結果:
Javaコンテナクラスの性質を使用してコンテナを選択
2.実現
package com.wish.datastrustudy;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
public class StringArray {
public static void main(String[] args) {
// union
String[] arr1 = {"abc", "df", "abc","dd","bdfe"};
String[] arr2 = {"abc", "cc", "df", "d", "abc"};
String[] result_union = union(arr1, arr2);
System.out.println(" :");
for (String str : result_union) {
System.out.println(str);
}
// insect
String[] result_insect = intersect(arr1, arr2);
System.out.println(" :");
for (String str : result_insect) {
System.out.println(str);
}
// substract
String[] result_minus = substract(arr1, arr2);
System.out.println(" :");
for (String str : result_minus) {
System.out.println(str);
}
}
// (set )
public static String[] union (String[] arr1, String[] arr2){
Set<String> hs = new HashSet<String>();
for(String str:arr1){
hs.add(str);
}
for(String str:arr2){
hs.add(str);
}
String[] result={};
return hs.toArray(result);
}
// ( LinkedList , , )
public static String[] intersect(String[] arr1, String[] arr2){
List<String> l = new LinkedList<String>();
Set<String> common = new HashSet<String>();
for(String str:arr1){
if(!l.contains(str)){
l.add(str);
}
}
for(String str:arr2){
if(l.contains(str)){
common.add(str);
}
}
String[] result={};
return common.toArray(result);
}
//
public static String[] substract(String[] arr1, String[] arr2) {
LinkedList<String> list = new LinkedList<String>();
for (String str : arr1) {
if(!list.contains(str)) {
list.add(str);
}
}
for (String str : arr2) {
if (list.contains(str)) {
list.remove(str);
}
}
String[] result = {};
return list.toArray(result);
}
}
出力結果:
:
bdfe
dd
d
abc
df
cc
:
abc
df
:
dd
bdfe