Java集合練習問題

7693 ワード

一.1~20の重複しない乱数を10個生成
分析プロセス:
1.乱数を生成するにはRandomクラスが必要
2.重複できない数を10個保存する必要があり、HashSetセットが必要です(現在のTreeSetはまだ学習していません)
3.HashSetのSizeが10未満の場合は乱数を格納し、格納要素の追加を停止する
4.ランダム数をRandomのnextInt()メソッドで取得しHashSetに加える
5.HashSetを巡り、10個の乱数を印刷する
package hashset;
 
import java.util.HashSet;
import java.util.Random;
 
public class Test1_HashSet {
 
	public static void main(String[] args) {
		
		//1.  Random  
		Random r = new Random();
		//2.  HashSet  
		HashSet hs = new HashSet<>(); 	//        int
		//3.       
		while(hs.size()< 10) {
			//4.  Random     nextInt()  1 20      
			hs.add(r.nextInt(20) + 1); 		//    1,     0 19
		}
		
		//5.  HashSet
		for (Integer integer : hs) {
			System.out.println(integer);
		}
	}
}

キーボードから1行の入力文字列を取得し、重複文字を除去する必要があります.
分析プロセス:
1.Scannerクラスの使用が必要
2.1行の文字列を入力し、文字配列に変換する必要があります
3.HashSetコレクションオブジェクトを作成する(HashSetが同じ要素を保存できない特性で重複文字を削除する目的)
4.文字配列要素を巡回し、HashSetセットに追加
5.変数集合要素
package hashset;
 
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
 
import javax.swing.plaf.synth.SynthSpinnerUI;
 
public class Test2_HashSet {
 
	public static void main(String[] args) {
		
		//1.        
		Scanner sc = new Scanner(System.in);
		System.out.println("        :");
		String line = sc.nextLine();
		
		//2.          
		char[] c = line.toCharArray();
		
		//3.           ,  HashSet
		HashSet hs = new HashSet<>();
	
		//4.    ,         
		for (int i = 0; i < c.length; i++) {
			hs.add(c[i]);
		}
		
		//5.  HashSet  
		for (Character character : hs) {
			System.out.println(character);
		}
		
	}
 
}

シーケンスリストArrayListに格納されている要素が整数値1~5であると仮定し、各要素を巡り、各要素を順次出力する.(list集合遍歴方法まとめ)
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

//      ArrayList           1~5,      ,         。 [   ]
public class MyArray {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        Iterator it = list.iterator();
//           
        while(it.hasNext()){
            System.out.println(it.next());
        }
//      for    
        for(int i = 0;i

3、一つのリストに以下の要素を保存する:apple,grape,banana,pear•3.1は集合の中の最大と最小の要素を返す•3.2は集合を並べ替えて、並べ替えた結果をコンソールに印刷する
import java.util.ArrayList;
import java.util.List;

//3、            :
//apple,grape,banana,pear
//• 3.1                
//• 3.2        ,                [   
public class MyScort {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("apple");
        list.add("grape");
        list.add("banana");
        list.add("pear");
        for(int j = 0;j0){
                    String temp = list.get(i);
                    list.set(i, list.get(i+1));
                    list.set(i+1, temp);
                }
            }
        }

        System.out.print("      :");
        for(int i = 0;i

 
プログラムを記述し、コマンドラインパラメータの文字列リストを取得し、重複する文字、重複しない文字、および重複後の文字リストを削除します.
public static void main(String[] args) {
    String str = "abcdeafblmbnopawc";
    System.out.println("    :"+str);


    Set set1 = new HashSet();//        
    Set set2 = new HashSet();//     
    Set set3 = new HashSet();//      

    //          
    char[] cs = str.toCharArray();
    for (char c : cs) {
        boolean b = set1.add(c);
        if(!b){
            set2.add(c);
        }
    }

    //           set3
    set3.addAll(set1);
    //          -       =       
    set3.removeAll(set2);

    System.out.println("====        ========");
    for (char c : set1) {
        System.out.print(c+" ");
    }

    System.out.println("
==== ========"); for (char c : set2) { System.out.print(c+" "); } System.out.println("
==== ========"); for (char c : set3) { System.out.print(c+" "); } }

 
Scannerを使用してコンソールから文字列を読み出し、文字列の中で各文字が出現した回数を統計し、学習した知識を使用して以上の要求を達成することを要求し、Set、List、Map集合の特性に基づいて構想を実現する.
public static void main(String[] args) {
    String str = "abcdeblmbac";
    System.out.println("    :"+str);

    Map map = new HashMap();
    char[] cs = str.toCharArray();

    for (char c : cs) {

        if(map.containsKey(c)){
            Integer value = map.get(c);
            value++;

            map.put(c, value);

        }else{
            map.put(c, 1);
        }   
    }
    //  map
    Set set = map.keySet();
    for (Character c : set) {
        System.out.println(c+"   "+map.get(c)+" ");
    }
}

//属性id[1-30]、grade[1-6]、score[0-100]を含むStudioクラスを書きます.すべての属性はランダムに生成されます//Setセットを作成し、20個のオブジェクトを保存します.2つのオブジェクトのidが同じであれば、追加は許可されません.//反復器を用いて集合を遍歴し、出力対象の情報を印刷し、点数が最も高い同級生と点数が最も低い同級生を探し出し、最後に最高点数と最低点数の同級生情報を印刷出力する. 
package Test;

import java.util.*;
//    Student ,     id[1-30), grade[1-6], score[0-100],           
//     Set  ,   20   ,        id    ,      .
//          ,         ,                   ,                  .
public class Test13 {

	public static void main(String[] args) {
		Set set = new HashSet();
		for (; set.size() != 20;) {
			int id = (int) (Math.random() * 29 + 1);
			int grade = (int) (Math.random() * 6 + 1);
			double score = (int) (Math.random() * 1001) / 10.0;
			set.add(new Student(id, grade, score));
		}
		for (Student student : set) {
			System.out.println(student);
		}
		System.out.println("---------------------------");
		Student maxScoreStudent = null;
		Student minScoreStudent = null;
		Iterator iterator = set.iterator();
		while (iterator.hasNext()) {
			Student student = iterator.next();
			if (maxScoreStudent == null) {
				maxScoreStudent = student;
				minScoreStudent = student;
			}
			if (student.getScore() > maxScoreStudent.getScore()) {
				maxScoreStudent = student;
			}
			if (student.getScore() < minScoreStudent.getScore()) {
				minScoreStudent = student;
			}
		}
		System.out.println(maxScoreStudent);
		System.out.println(minScoreStudent);
	}
}

class Student implements Comparable {

	private int id;
	private int grade;
	private double score;

	public Student() {
	}

	public Student(int id, int grade, double score) {
		super();
		this.id = id;
		this.grade = grade;
		this.score = score;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public int getGrade() {
		return grade;
	}

	public void setGrade(int grade) {
		this.grade = grade;
	}

	public double getScore() {
		return score;
	}

	public void setScore(double score) {
		this.score = score;
	}

	@Override
	public String toString() {
		return "Student [id=" + id + ", grade=" + grade + ", score=" + score + "]";

	}

	public int compareTo(Student o) {
		return (int) (this.score - o.score);
	}

}