Javaコレクション演算
3016 ワード
Javaコレクション演算(交差、並列、差分)
参照先:https://blog.csdn.net/lsp1991/article/details/46931151
1、使い方集合演算の戻り値は、集合 である.集合演算では、ターゲット集合をコピーしてバックアップするのが一般的です.そうしないと、演算後に集合要素が変更されます.例えば、 並列演算では,[List obj].addAll([List obj])を用いた方法で得られた結果は,2つの集合のすべての要素であり,重複する要素がある可能性があり,数学的な意味での並列とは異なり,数学的な意味での並列を求めるには変換が必要である.(したがって、一般的には、HashSetまたはTreeSetに要素を格納し、集合演算結果における要素の一意性を保証することができる)、例えば、 .数学的意味での並列結果 に変換
*注意: split()メソッドは、指定された正規表現に一致する文字列を分割します.注意:.、|および*などのエスケープ文字は、を付けなければなりません.注意:複数の区切り文字は、|をハイフンとして使用できます. 2、集合演算例:
付:ブルーブリッジカップ集合演算アルゴリズム問題(TreeSetメモリ要素の一意性解法):https://blog.csdn.net/CR_fun/article/details/79294541
参照先:https://blog.csdn.net/lsp1991/article/details/46931151
1、使い方
[List obj1].retainAll([List obj2]); //
[List obj1].addAll([List obj2]); //
[List obj1].removeAll([List obj2]); // ,obj1-obj2
private List union(List l1,List l2) {
List list =new ArrayList(Arrays.asList(new Object[l1.size()]));
Collections.copy(list, l1); // l1 list
list.addAll(l2);
return list;
}
/* */
//print the union of the two list
System.out.println("
");
System.out.println("Union: ");
list=opt.union(l1, l2);
for(i=0;i
/* */
//print the union of the two list
System.out.println("
");
System.out.println("Union: ");
list=opt.union(l1, l2);
for(i=0;i
*注意:
import java.util.*;
public class setOpt {
//The operation of Intersect
private List intersetct(List l1,List l2) {
List list=new ArrayList(Arrays.asList(new Object[l1.size()]));
Collections.copy(list, l1);
list.retainAll(l2);
return list;
}
//The operation of Union
private List union(List l1,List l2) {
List list =new ArrayList(Arrays.asList(new Object[l1.size()]));
Collections.copy(list, l1);
list.addAll(l2);
return list;
}
//The operation of Diff
private List diff(List l1,List l2) {
List list =new ArrayList(Arrays.asList(new Object[l1.size()]));
Collections.copy(list, l1);
list.removeAll(l2);
return list;
}
public static void main(String[] args) {
String str1[]="1;2;3;4;6;8".split(";");
String str2[]="2;4;7;9".split(";");
int i,j;
setOpt opt=new setOpt();
List l1=new ArrayList();
List l2=new ArrayList();
List list;
for(i=0;i
付:ブルーブリッジカップ集合演算アルゴリズム問題(TreeSetメモリ要素の一意性解法):https://blog.csdn.net/CR_fun/article/details/79294541