【Java】集合框架基础编程练习题
生活随笔
收集整理的這篇文章主要介紹了
【Java】集合框架基础编程练习题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Q1:創建有三個屬性(ID、Name、Balance)的銀行賬戶,并可查余額
/*** 創建有三個屬性(ID、Name、Balance)的銀行賬戶,并可查余額,這是Account賬戶*/ public class Account {private long id;private String name;private double balance;public Account(long id, String name, double balance) {this.id = id;this.name = name;this.balance = balance;}public void setBalance(double balance) {this.balance = balance;}public long getId() {return this.id;}public String getName() {return this.name;}public double getDouble() {return this.balance;}@Overridepublic boolean equals(Object obj) {if ((obj != null) && (obj instanceof Account)) {if (((Account)obj).getId() == (this.getId())) {return true;}}return false;}@Overridepublic String toString() {return "ID: " + id + ", Name: " + name + ", Balance: " + balance;}} import java.util.Scanner; import java.util.HashSet;/*** 創建有三個屬性(ID、Name、Balance)的銀行賬戶,并可查余額,這是Bank*/ public class Bank {public static void main(String[] args) {HashSet<Account> accountList = new HashSet<>();accountList.add(new Account(1234567890, "李華", 1000.0));accountList.add(new Account(1234567891, "嘿嘿", 4000.0));accountList.add(new Account(1234567892, "王強", 2000.0));accountList.add(new Account(1234567893, "趙剛", 3000.0));Scanner scanner = new Scanner(System.in);System.out.print("請輸入待查詢的ID\nID>");String str = scanner.next();try {var id = Long.parseLong(str);for (var account : accountList) {if (account.getId() == id) {System.out.println(account);}}} catch (NumberFormatException e) {System.out.println(e);}scanner.close();}}Q2:熟悉HashSet和Collection
import java.util.Collection; import java.util.Set; import java.util.HashSet;/*** 熟悉HashSet和Collection*/ public class CollectionTest1 {public static void main(String[] args) {Set<Integer> set1 = new HashSet<>();set1.add(1);//set.add("a");set1.add(5);set1.add(4);set1.add(3);set1.add(2);set1.add(3);for (int i : set1) {System.out.print(i + " ");}System.out.println();Collection<Integer> c = set1;Set<Integer> set2 = new HashSet<>(c);set2.remove(4);set2.add(6);for (int i : set2) {System.out.print(i + " ");}System.out.println();Set<Integer> set3 = new HashSet<>(set1);set3.addAll(set2);for (int i : set3) {System.out.print(i + " ");}System.out.println();Set<Integer> set4 = new HashSet<>(set1);set4.retainAll(set2); for (int i : set4) {System.out.print(i + " ");}} }Q3:從控制臺輸入若干個單詞(輸入回車結束)放入集合中,將這些 單詞排序后(忽略大小寫)打印出來
import java.util.Scanner; import java.util.ArrayList; import java.util.StringTokenizer;/*** 從控制臺輸入若干個單詞(輸入回車結束)放入集合中,將這些 單詞排序后(忽略大小寫)打印出來*/ public class CollectionTest2 {public static String getMax(ArrayList<String> list) {var count = 0;for (String str1 : list) {count = 0;for (String str2 : list) {if (str1.compareToIgnoreCase(str2) > 0) {count++;}}if (count == list.size()-1) {return str1;}}return null;}public static ArrayList<String> sort(ArrayList<String> list) {ArrayList<String> temp = new ArrayList<>(list);ArrayList<String> result = new ArrayList<>();String max;for (int i = 0; i < list.size(); i++) {max = getMax(temp);result.add(max);temp.remove(max);}return result;}public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();var scanner = new Scanner(System.in);System.out.println("請輸入一串文本,用#分割每個字符串,用回車鍵結束");var string = scanner.nextLine();var st = new StringTokenizer(string, "#");String temp;while (st.hasMoreTokens()) {temp = st.nextToken();list.add(temp);}for (String str : sort(list)) {System.out.println(str);}scanner.close();}}Q4:用HashSet盛放學生數據并測試
/*** 用HashSet盛放學生數據,這是學生類*/ public class Student {private String id;private String name;public Student(String id, String name) {this.id = id;this.name = name;}public String getId() {return this.id;}public String getName() {return this.name;}@Overridepublic String toString() {return "ID: " + this.id + " Name: " + this.name;} } import java.util.Set; import java.util.HashSet;/*** 用HashSet盛放學生數據,這是測試類*/ public class StudentSetTest {public static void main(String[] args) {Set<Student> studentSet = new HashSet<>();Student student1 = new Student("A0001", "王明");Student student2 = new Student("A0002", "李剛");Student student3 = new Student("A0003", "趙宇");studentSet.add(student1);studentSet.add(student2);studentSet.add(student3);for (Student student : studentSet) {System.out.println(student);}}}Q5:在一個列表中存儲以下元素:apple、grape、banana、pear,返回集合中的最大的和最小的元素,將集合進行排序,并將排序后的結果打印在控制臺上
import java.util.ArrayList;/*** 在一個列表中存儲以下元素:apple,grape,banana,pear* 返回集合中的最大的和最小的元素* 將集合進行排序,并將排序后的結果打印在控制臺上*/ public class ListTest1 {public static void main(String[] args) {ArrayList<String> fruitList = new ArrayList<>();fruitList.add("apple");fruitList.add("grape");fruitList.add("banana");fruitList.add("pear");System.out.println(getMax(fruitList));System.out.println(getMin(fruitList));for (String str : sort(fruitList)) {System.out.println(str);}}public static String getMax(ArrayList<String> list) {var count = 0;for (String str1 : list) {count = 0;for (String str2 : list) {if (str1.compareTo(str2) > 0) {count++;}}if (count == list.size()-1) {return str1;}}return null;}public static String getMin(ArrayList<String> list) {var count = 0;for (String str1 : list) {count = 0;for (String str2 : list) {if (str1.compareTo(str2) < 0) {count++;}}if (count == list.size()-1) {return str1;}}return null;}public static ArrayList<String> sort(ArrayList<String> list) {ArrayList<String> temp = new ArrayList<>(list);ArrayList<String> result = new ArrayList<>();String max;for (int i = 0; i < list.size(); i++) {max = getMax(temp);result.add(max);temp.remove(max);}return result;}}Q6:用for、foreach、Iterator三種方法分別遍歷ArrayList、LinkedList
import java.util.Iterator; import java.util.List; import java.util.ArrayList; import java.util.LinkedList;/*** for、foreach、Iterator三種方法分別遍歷ArrayList、LinkedList*/ public class ArrayListAndLinkedListTest {public static void main(String[] args) {List<Integer> arrayList = new ArrayList<>();List<Integer> linkedList = new LinkedList<>();arrayList.add(211);arrayList.add(100);arrayList.add(996);arrayList.add(985);arrayList.add(798);arrayList.add(3);linkedList.addAll(arrayList);System.out.println("for循環遍歷ArrayList:");//for循環遍歷ArrayListfor (int i = 0; i < arrayList.size(); i++) {System.out.print(arrayList.get(i) + " ");}System.out.println("\nfor循環遍歷LinkedList:");//for循環遍歷LinkedListfor (int i = 0; i < linkedList.size(); i++) {System.out.print(linkedList.get(i) + " ");}System.out.println("\nforeach循環遍歷ArrayList:");//foreach循環遍歷ArrayListfor (int i : arrayList) {System.out.print(i + " ");}System.out.println("\nforeach循環遍歷LinkedList:");//foreach循環遍歷LinkedListfor (int i : linkedList) {System.out.print(i + " ");}Iterator<Integer> arrayIterator = arrayList.iterator();Iterator<Integer> linkedIterator = linkedList.iterator();System.out.println("\nIterator遍歷ArrayList:"); //Iterator遍歷ArrayListwhile (arrayIterator.hasNext()) {System.out.print(arrayIterator.next() + " ");}System.out.println("\nIterator遍歷LinkedList:");//Iterator遍歷LinkedListwhile (linkedIterator.hasNext()) {System.out.print(linkedIterator.next() + " ");}} }Q7:對集合遍歷的修改進行測試
import java.util.*;public class IteratorTest {public static void main(String[] args) {Collection<Integer> c = new ArrayList<>();c.add(1);c.add(2);c.add(3);c.add(4);c.add(5);Iterator<Integer> iterator = c.iterator();while (iterator.hasNext()) {int i = iterator.next();if (i == 3) {//c.remove(3);iterator.remove();}System.out.println(i);}System.out.println();//進不去,無輸出。。因為迭代完了while (iterator.hasNext()) {int i = iterator.next();System.err.println("ss");System.out.println(i);}System.out.println();//可以看到缺了3for (int i : c) {System.out.println(i);} // System.out.println(); // List<Integer> l = new ArrayList<>(c); // Iterator<Integer> iterator2 = l.iterator(); // while (iterator2.hasNext()) { // int i = iterator2.next(); // if (i == 2) { // l.remove(2); // iterator2.remove(); // } // //System.out.println(i); // }System.out.println();Collection<Integer> p =Collections.synchronizedCollection(new ArrayList<>(c));Iterator<Integer> iterator3 = p.iterator();while (iterator3.hasNext()) {int i = iterator3.next();if (i == 4) {p.remove(4);iterator3.remove();}//System.out.println(i);}}}總結
以上是生活随笔為你收集整理的【Java】集合框架基础编程练习题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据结构与算法】二叉查找树的Java实
- 下一篇: 【Java】格式化的文件I/O