重複する要素を取り除く
Posted feedbacks - Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import java.util.*;
public class UniqOnly {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5);
Set<Integer> counter = new HashSet<Integer>();
Set<Integer> dup = new HashSet<Integer>();
for (int i = 0, n = list.size(); i < n; i++) {
if(!counter.add(list.get(i))) {
dup.add(list.get(i));
}
}
list = new LinkedList<Integer>(list);
list.removeAll(dup);
System.out.println(list);
}
}
|
sawat氏のとほとんど同じですが一応投稿。 (クラス名、変数名は参考にさせていただきました)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import java.util.*;
public class UniqueOnly {
public static void main(String[] args) {
int[] xs = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9};
List res = unique(xs);
System.out.println(res); // => [4, 2, 6, 8, 7]
}
public static List<Integer> unique(int[] xs) {
LinkedHashSet<Integer> set = new LinkedHashSet<Integer>();
HashSet<Integer> dup = new HashSet<Integer>();
for (int x : xs) {
if (!set.add(x)) dup.add(x);
}
set.removeAll(dup);
return new ArrayList<Integer>(set);
}
}
|


にしお
#3412()
Rating1/1=1.00
これはアレイのuniqの派生問題です。 リストとかアレイという言葉は言語によってまちまちの意味で使われているので、 「配列のようなもの」という漠然とした意味にとって構いません。
[ reply ]