このページは「JAVAのHashSet」の演習問題です。「JAVAのHashSet」の基礎を学びたい方はこちらで参考してください。
JAVAのHashSet
Setは重複要素のないコレクションです。SetインタフェースにHashSetクラス、TreeSetクラス、LinkedHashSetクラスがあります。この記事ではSetインタフェースを実装したコレクションクラスの中に最も一般的なHashSetを紹介します。この記事ではHashSetの宣言、初期化、要素の挿入、取得、削除と主に使われるメソッドを紹介します。
1. HashSetの要素を昇順で出力する
問題:String型のHashSetを宣言し、初期化する。そのHashSetの要素を昇順で出力する
ヒント : HashSetの要素は順序がないため、HashSetの要素を昇順に並べることなく、出力の順番だけ工夫すれば良いです。順序に出力するのは2つの方法があります。解答例
例
package helloworld;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.TreeSet;
public class HelloWorld {
public static void main(String[] args) {
//HashSetクラスのhashSetString変数を宣言する
HashSet< String > hashSetString = new HashSet<>();
//hashSetStringに要素を入れる
hashSetString.add("Orange");
hashSetString.add("Apple");
hashSetString.add("Banana");
hashSetString.add("Guava");
hashSetString.add("Pear");
System.out.print("元のhashSetStringの全要素: ");
System.out.println(hashSetString);
// 方法1: ArrayListに変換して昇順に並べて出力する
ArrayList< String > arrayListString = new ArrayList<>(hashSetString);
Collections.sort(arrayListString);
System.out.print("\n方法1の結果:");
System.out.println(arrayListString);
// 方法2: TreeSetに変換して出力する
TreeSet< String > treeSetString = new TreeSet<>(hashSetString);
System.out.print("方法2の結果:");
System.out.println(treeSetString);
}
}実行結果:
元のhashSetStringの全要素: [Guava, Apple, Pear, Orange, Banana] 方法1の結果:[Apple, Banana, Guava, Orange, Pear] 方法2の結果:[Apple, Banana, Guava, Orange, Pear]
sortでListの要素をソートするについて詳しく見たい方:
| sortでListの要素をソートする ../../../java/java-collection-arraylist.html?goto=5to6 この記事ではListを実装したクラスの一つであるArrayListを紹介します。ArrayListは大きさが可変という点でたくさんの応用があるので、開発現場でよく・・・ |
2. HashSetを利用して、重複要素がない配列を作る
問題:元の配列からHashSetを利用して、重複要素のない配列を作る。
ヒント : HashSetは重複要素を許さないので、元の配列からHashSetに変換して、それから配列に戻せばいいです。 toArray()でHashSetから配列に変換するについて詳しく見たい方:
| toArray()でHashSetから配列に変換する ../../../java/java-collection-hashset.html?goto=4to4 Setは重複要素のないコレクションです。SetインタフェースにHashSetクラス、TreeSetクラス、LinkedHashSetクラスがあります。この記事ではSetインタフェー・・・ |
解答例
例
package helloworld;
import java.util.HashSet;
public class HelloWorld {
public static void main(String[] args) {
//配列を宣言し、初期化する
Integer[] array = {1, 2, 3, 2, 4, 5, 1, 6, 1};
//HashSetクラスのhashSet変数を宣言する
HashSet< Integer > hashSet = new HashSet<>();
//hashSetに要素を入れる
for (int i = 0; i < array.length; i++) {
hashSet.add(array[i]);
}
//HashSetから配列に変換する
Object[] array2 = hashSet.toArray();
//重複しないarray2を表示する
System.out.print("重複要素のないarray2 :");
for (int i = 0; i < array2.length; i++) {
System.out.print(" " + array2[i]);
}
}
}実行結果:
重複要素のないarray2 : 1 2 3 4 5 6
広告