java集合练习题_「集合练习题」Java集合框架篇-58-集合框架的几个练习题 - seo实验室...
集合練習題
前面幾篇我們學習HashSet和LinkedHashSet的原理和基本使用,這篇,我們來練習下這兩個類的相關的集合編程練習題。
一.生成10個1到20之間的不重復的隨機數(shù)
分析過程:
1. 需要生成隨機數(shù),那么需要Random類
2. 需要存儲10個不能重復的數(shù),需要HashSet集合(當前treeset還沒學習到)
3. 判斷,當HashSet的Size小于10就往里存儲隨機數(shù),等于就停止添加存儲元素
4. 通過Random的nextint()方法獲取隨機數(shù)并加入到HashSet里
5. 遍歷HashSet,打印出10個隨機數(shù)
根據(jù)上面的分析過程,我們來寫一個測試代碼。package hashset;
import java.util.HashSet;
import java.util.Random;
public class Test1_HashSet {
public static void main(String[] args) {
//1.創(chuàng)建Random對象
Random r = new Random();
//2.創(chuàng)建HashSet對象
HashSet hs = new HashSet<>(); //注意是包裝類不是int
//3.判斷并添加元素
while(hs.size()< 10) {
//4.通過Random中隨機方法nextInt()獲取1到20范圍內隨機數(shù)
hs.add(r.nextInt(20) + 1); //如果不加1,隨機范圍是0到19
}
//5.遍歷HashSet
for (Integer integer : hs) {
System.out.println(integer);
}
}
}
運行輸出:16
17
4
6
9
10
11
12
13
15
二.從鍵盤獲取一行輸入字符串,要求去除重復字符。
分析過程:
1. 需要使用scanner類
2. 輸入的是一行字符串,需要轉換成字符數(shù)組
3. 創(chuàng)建HashSet集合對象
4. 字符數(shù)組遍歷元素,并添加進入HashSet集合
5. 變量集合元素
根據(jù)上面分析過程,來寫一個測試代碼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.創(chuàng)建鍵盤輸入對象
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一行字符串:");
String line = sc.nextLine();
//2.字符串轉換成字符數(shù)組
char[] c = line.toCharArray();
//3.字符數(shù)組轉換成集合對象,創(chuàng)建HashSet
HashSet hs = new HashSet<>();
//4.遍歷數(shù)組,元素依次添加進集合
for (int i = 0; i < c.length; i++) {
hs.add(c[i]);
}
//5.遍歷HashSet集合
for (Character character : hs) {
System.out.println(character);
}
}
}
我這邊測試,沒有問題,輸出都進行了字符去重效果。
三.把List集合中的重復元素去除
分析過程:
1. 首先需要有一個List集合,我們就使用ArrayList
2. 給ArrayList集合添加一些重復元素
3. 調用一個去除重復元素的方法(LinkedHashSet實現(xiàn))
4. 打印去除重復之后的ArrayList元素
好了,關鍵的地方在于,我們如何寫這個去除重復元素的方法,如果使用LinkedHashSet實現(xiàn)。看下面的代碼,注意看代碼備注部分。package hashset;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
public class test3_HashSet {
public static void main(String[] args) {
//1.創(chuàng)建一個ArrayList集合并添加重復元素
ArrayList list = new ArrayList<>();
list.add("a");
list.add("a");
list.add("b");
list.add("b");
list.add("c");
list.add("c");
//2.調用去重方法
getSingle(list);
//3.遍歷去重之后list集合
System.out.println(list);
}
public static void getSingle(List ls) {
//1.新建一個LinkedHashSet對象
LinkedHashSet lhs = new LinkedHashSet<>();
//2.將List所有元素添加到LinkedHashSet
lhs.addAll(ls); //集合作為一個參數(shù)傳入
//3.先把原來的List給清空
ls.clear();
//4.把LinkedHashSet集合元素添加到List
ls.addAll(lhs);
}
}
運行結果:
[a, b, c]
相關閱讀
對于任意的Object,判斷其是否為null,應該將Object xx==null寫在所有判斷條件的前頭,一個為null的東西,調用其自身的任何方法都會出現(xiàn)
HTTP Status 500 - Request processing failed; nested exception is java.lang.NullPointerExceptiontype Exception reportmess
今天在開發(fā)的時候用到了枚舉類,剛開始還沒有發(fā)現(xiàn)問題,定義好枚舉類之后,為該類定義了屬性,此時問題來了,發(fā)現(xiàn)編輯器報錯,規(guī)則代碼
點擊上方“方志朋”,選擇“置頂或者星標”
你的關注意義重大!
?前言
現(xiàn)在使用NIO的場景越來越多,很多網(wǎng)上的技術框架或多或
Eclipse:形式, 選中項目右鍵命令行形式:1.編寫Java類2.命令行指定到項目/src文件夾,編譯3.編寫manifest文件4.目錄重新定位到bin/cla
總結
以上是生活随笔為你收集整理的java集合练习题_「集合练习题」Java集合框架篇-58-集合框架的几个练习题 - seo实验室...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 马尔萨斯人口模型
- 下一篇: java学习之路 之 Java集合练习题