1

この記事の目次



このページは「JAVAのHashSet」の演習問題です。「JAVAのHashSet」の基礎を学びたい方はこちらで参考してください。

1.  HashSetの要素を昇順で出力する


問題:String型のHashSetを宣言し、初期化する。そのHashSetの要素を昇順で出力する

ヒント : HashSetの要素は順序がないため、HashSetの要素を昇順に並べることなく、出力の順番だけ工夫すれば良いです。順序に出力するのは2つの方法があります。

  • HashSetをArrayListに変えて、Collections.sort()メソッドで昇順に並べて出力する
  • HashSetをTreeSetに変えて出力する
  • 解答例
    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
    広告