1. 程式人生 > >Java_基礎—集合框架(練習)

Java_基礎—集合框架(練習)

Test1.java

package com.soar.test;

import java.util.HashSet;
import java.util.Random;

public class Test1 {
    /*
    * A:案例演示
    * 需求:編寫一個程式,獲取10個1至20的隨機數,
    *     要求隨機數不能重複。並把最終的隨機數輸出到控制檯。     
    * 分析: 
    * ① 有Random類建立隨機數物件
    * ② 需要儲存10個隨機數,而且不能重複,所以我們用HashSet集合
    * ③ 如果HashSet的size是小於10就可以不斷的儲存,如果大於等於10就停止儲存
    * ④ 通過Random類中的nextInt()獲取1~20之間的隨機數,並將這些隨機數儲存在HashSet集合當中
    * ⑤ 遍歷HashSet
    */
public static void main(String[] args) { //① 有Random類建立隨機數物件 Random r = new Random(); //② 需要儲存10個隨機數,而且不能重複,所以我們用HashSet集合 HashSet<Integer> hs = new HashSet<>(); //③ 如果HashSet的size是小於10就可以不斷的儲存,如果大於等於10就停止儲存 while(hs.size()<10){ //④ 通過Random類中的nextInt()獲取1~20之間的隨機數,並將這些隨機數儲存在HashSet集合當中
hs.add(r.nextInt(20)+1); } //⑤ 遍歷HashSet for (Integer integer : hs) { System.out.println(integer); } } }

Test2.java

package com.soar.test;

import java.util.HashSet;
import java.util.Scanner;

public class Test2 {
/*
 *  * 使用Scanner從鍵盤讀取一行輸入,去掉其中重複字元, 打印出不同的那些字元
    * aaaabbbcccddd
    * 分析:
    * ① 建立Scanner物件
    * ② 建立HashSet物件,將字元儲存,去掉重複
    * ③ 將字串轉換為字元陣列,獲取每一個字元儲存在HashSet集合中,自動去除重複
    * ④ 遍歷HashSet,列印每一個字元
 */
public static void main(String[] args) { //① 建立Scanner物件 Scanner sc = new Scanner(System.in); System.out.println("請輸入一行字串:"); //② 建立HashSet物件,將字元儲存,去掉重複 HashSet<Character> hs = new HashSet<>(); //③ 將字串轉換為字元陣列,獲取每一個字元儲存在HashSet集合中,自動去除重複 String line = sc.nextLine(); char[] arr = line.toCharArray(); for (char c : arr) { //遍歷字元陣列 hs.add(c); } //④ 遍歷HashSet,列印每一個字元 for(Character ch : hs){ System.out.println(ch); } } }

Test3.java

package com.soar.test;

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;

public class Test3 {
    /*
     * 需求:* 將集合中的重複元素去掉
     * 分析:
     * ① 建立一個List集合,儲存若干個重複元素
     * ② 單獨定義一個方法去除重複
     * ③ 遍歷(列印一下)List集合
     */
    public static void main(String[] args) {
        //① 建立一個List集合,儲存若干個重複元素
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("b");
        list.add("c");
        list.add("c");

        //② 單獨定義一個方法去除重複
        getSingle(list);

        //③ 遍歷(列印一下)List集合
        System.out.println(list);
    }

    /* 分析:去除List集合中的重複元素
     * ① 建立一個LinkedHashSet集合
     * ② 將List集合中所有的元素新增到LinkedHashSet集合
     * ③ 將List集合中的元素清除
     * ④ 將LinkedHashSet集合中的元素添加回List集合
     */
    public static void getSingle(List<String> list) {
        //① 建立一個LinkedHashSet集合
        LinkedHashSet<String> lhs = new LinkedHashSet<>();
        //② 將List集合中所有的元素新增到LinkedHashSet集合
        lhs.addAll(list);
        //③ 將List集合中的元素清除
        list.clear();
        //④ 將LinkedHashSet集合中的元素添加回List集合
        list.addAll(lhs);
    }

}