このページは「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
広告