Java_基礎—集合框架(練習)
阿新 • • 發佈:2019-02-09
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);
}
}