日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

JavaSE各阶段练习题----集合-Collection-Set-List

發布時間:2024/2/28 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaSE各阶段练习题----集合-Collection-Set-List 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.分析以下需求,并用代碼實現:

??(1)有如下代碼:

List<String> list = new ArrayList<>();

?

list.add("a");

list.add("a");

list.add("a");

list.add("b");

list.add("b");

list.add("c");

list.add("d");

list.add("d");

list.add("d");

list.add("d");

list.add("d");

?

System.out.println(frequency(list, "a")); // 3

System.out.println(frequency(list, "b")); // 2

System.out.println(frequency(list, "c")); // 1

System.out.println(frequency(list, "d")); // 5

System.out.println(frequency(list, "xxx")); // 0

(2)定義方法統計集合中指定元素出現的次數,如"a" 3,"b" 2,"c" 1

?

package?com.henu.jihe;

?

import?java.util.ArrayList;

import?java.util.List;

?

public?class?Demo01 {

public?static?void?main(String[] args) {

?

List<String> list?= new?ArrayList<>();

?

list.add("a");

list.add("a");

list.add("a");

list.add("b");

list.add("b");

list.add("c");

list.add("d");

list.add("d");

list.add("d");

list.add("d");

list.add("d");

?

System.out.println(frequency(list, "a")); // 3

System.out.println(frequency(list, "b")); // 2

System.out.println(frequency(list, "c")); // 1

System.out.println(frequency(list, "d")); // 5

System.out.println(frequency(list, "xxx")); // 0

?

?

}

public?static?int?frequency(List<String> list,String str) {

int?count?= 0;

for?(int?i?= 0; i?< list.size(); i++) {

if?(str.equals(list.get(i))) {

count++;

}

}

return?count;

}

}

?

?

2 分析以下需求,并用代碼實現:

(1)生成10個1至100之間的隨機整數(不能重復),存入一個List集合

(2)編寫方法對List集合進行排序

(2)然后利用迭代器遍歷集合元素并輸出

(3)如:15 18 20 40 46 60 65 70 75 91

package?com.henu.jihe;

?

import?java.util.ArrayList;

import?java.util.Iterator;

import?java.util.List;

import?java.util.Random;

?

public?class?Demo02 {

public?static?void?main(String[] args) {

List<Integer> list?= new?ArrayList<Integer>();

Random random?= new?Random();

while?(true) {

int?pl?= 1;

int?num?= 1+random.nextInt(100);

for?(int?i?= 0; i?< list.size(); i++) {

if?(num?== list.get(i)) {

pl?= 0;

}

}

if?(pl?== 1) list.add(num);

if?(list.size() == 10) break;

}

listSort(list);

Iterator<Integer> iterator?= list.iterator();

while?(iterator.hasNext()) {

Integer integer?= (Integer) iterator.next();

System.out.println(integer);

}

}

?

public?static?void?listSort(List<Integer> list) {

int?size?= list.size();

for?(int?i?= 0; i?< size-1; i++) {

for?(int?j?= 0; j?< size-i-1; j++) {

int?a?= list.get(j);

int?b?= list.get(j+1);

if?(a?> b) {

// int?temp?= a;

// a = b;

// b = temp;//這樣的話不就是比較ab的值了嗎?和list就沒有了關系

// list.get(j+1) = list.get(j);

/*這樣會出錯你可以把一個對象賦值給一個引用(變量),

?* 但是你不能把對象賦值給對象。就好像你可以用盒子來裝電腦,但是不能用電腦來裝電腦。

?*/

// final List l = list;

????????list.remove(j);

????????list.remove(j);

????????list.add(j, b);

????????list.add(j+1, a);

}

}

}

}

?

}

?

?

3 編寫一個類Book,具有name,price,press,author 然后創建5個對象放入ArrayList中,并實現按照price大小排序,

然后遍歷ArrayList輸出每個Book對象, 使用toString 方法打印。

package?com.henu.jihe;

?

import?java.util.ArrayList;

import?java.util.Comparator;

import?java.util.List;

import?java.util.Set;

import?java.util.TreeSet;

?

public?class?Demo03 {

public?static?void?main(String[] args) {

Book b1?= new?Book("AI時代我們應該做些什么",109,"清華大學出版社","李孟冬");

Book b2?= new?Book("AI會毀滅人類嗎?",99,"河南大學出版社","李孟冬");

Book b3?= new?Book("AI來臨前的人性思考",79,"人民出版社","李孟冬");

Book b4?= new?Book("這本就是一首愛你的詩",59,"清華大學出版社","李孟冬");

Book b5?= new?Book("java的大發展",80,"清華大學出版社","李孟冬");

Set<Book> ts?= new?TreeSet<Book>();

ts.add(b1);

ts.add(b2);

ts.add(b3);

ts.add(b4);

ts.add(b5);

for?(Book book?: ts) {

System.out.println(book.toString());

}

}

}

?

?

class?Book implements?Comparable<Book>{

private?String name;

private?int?price;

private?String press;//出版社

private?String author;

public?Book() {

}

public?Book(String name, int?price, String press, String author) {

this.name?= name;

this.price?= price;

this.press?= press;

this.author?= author;

}

@Override

public?String toString() {

return?"Book [name="?+ name?+ ", price="?+ price?+ ", press="?+ press?+ ", author="?+ author?+ "]";

}

@Override

public?int?compareTo(Book o) {

return?this.price?- o.price;

}

?

}?

?

?

4 把如下元素存入List集合

???"aaa" "bbb" ?"aaa" ??"abc" ?"xyz" "123" "xyz"

???

??去掉重復元素

??

package?com.henu.jihe;

?

import?java.util.ArrayList;

import?java.util.HashMap;

import?java.util.Iterator;

import?java.util.List;

import?java.util.Map;

import?java.util.Map.Entry;

?

import?java.util.Set;

?

?

public?class?Demo04 {

public?static?void?main(String[] args) {

List<String> list?= new?ArrayList<String>();

list.add("aaa");

list.add("bbb");

list.add("aaa");

list.add("abc");

list.add("xyz");

list.add("123");

list.add("xyz");

//第一種去重復 ??存進Map中,利用Map的鍵不能重復

/*Map<String, Integer> hMap = new HashMap<String, Integer>();

for (String string : list) {

hMap.put(string, 1);

}

Set<Entry<String, Integer>> eSet = hMap.entrySet();

for (Entry<String, Integer> entry : eSet) {

String str?= entry.getKey();

System.out.print(str+"->");

}*/

//第二種去重復 ??雙重循環,一一判斷

// int?size = list.size();

// for (int?i = 0; i < size; i++) {

// for (int?j = 1; j < size; j++) {

// if (list.get(i).equals(list.get(j))) {

// list.remove(i);//如果遍歷到相同元素則刪除下標為i或為j的一個

// }

// }

// }

//第三種去重復 ??創建一個新的集合,存儲所遍歷的元素,如果

//遍歷到的元素與新集合里的元素相同則不存入

ArrayList<String> resList?= new?ArrayList<>();

Iterator<String> iterator?= list.iterator();

//使用迭代器遍歷整個集合

while(iterator.hasNext()) {//判斷集合中是否存在下一個元素

String str?= iterator.next();

if?(!resList.contains(str)) {//如果結果集合中不包含此對象,則存入結果集合

resList.add(str);

}

}

System.out.println(resList);

}

}

?

?

5 已知 Student類 ?屬性包括 ??int id,String name

?

????創建 5個Student對象存入 List中

?

Student s1 = new Student(1,"aaa");

Student s2 = new Student(2,"bbb");

Student s3 = new Student(3,"ccc");

Student s4 = new Student(4,"ddd");

Student s5 = new Student(1,"aaa");

?

去掉重復元素:當Student的id和name值都相同時,任務是重復元素

package?com.henu.jihe;

?

import?java.util.ArrayList;

import?java.util.HashMap;

import?java.util.List;

import?java.util.Map;

import?java.util.Set;

import?java.util.Map.Entry;

?

public?class?Demo05 {

public?static?void?main(String[] args) {

Student s1?= new?Student(1,"aaa");

Student s2?= new?Student(2,"bbb");

Student s3?= new?Student(3,"ccc");

Student s4?= new?Student(4,"ddd");

Student s5?= new?Student(1,"aaa");

List<Student> list?= new?ArrayList<Student>();

list.add(s1);

list.add(s2);

list.add(s3);

list.add(s4);

list.add(s5);

Map<String, Integer> hMap?= new?HashMap<String, Integer>();

List<Student> resList?= new?ArrayList<>();

String str?= "";

for?(int?i?= 0; i?< list.size(); i++) {

Student stu?= list.get(i);

str?= stu.getId()+stu.getName();

hMap.put(str, 1);

}

Set<Entry<String, Integer>> eSet?= hMap.entrySet();

for?(Entry<String, Integer> entry?: eSet) {

str?= entry.getKey();

Student stu?= new?Student();

int?id?= Integer.parseInt(str.substring(0,1));

stu.setId(id);

String name?= str.substring(1);

stu.setName(name);

resList.add(stu);

}

System.out.println(resList);

}

}

?

class?Student{

private?int?id;

private?String name;

public?Student() {

}

public?Student(int?id, String name) {

this.id?= id;

this.name?= name;

}

?

public?void?setId(int?id) {

this.id?= id;

}

public?void?setName(String name) {

this.name?= name;

}

public?int?getId() {

return?id;

}

public?String getName() {

return?name;

}

@Override

public?String toString() {

return?"Student [id="?+ id?+ ", name="?+ name?+ "]";

}

}

?

6 String s = "...(...[....]....{...}...)...(...).."; ?判斷括號是否匹配

package?com.henu.jihe;

?

import?java.util.Arrays;

import?java.util.Stack;

?

public?class?Demo06_03 {

?

????public?static?void?main(String[] args) {

?

????????String s?= "...(...[....]....{...}...)...(...)..";

?

????????String[] str?= s.split("\\.+");

?

????????System.out.println(Arrays.toString(str));

?

????????Stack<String> stack?= new?Stack<>();

????????int?count?= 0;

????????String string?= "";

?

????????for?(int?i?= 0; i+1 < str.length; i++) {

????????????if?("(".equals(str[i]) || "[".equals(str[i]) || "{".equals(str[i])) {

????????????????stack.push(str[i]);

????????????}

????????????if?(stack.size() != 0) {

????????????????string?= stack.peek();

// ???????????????System.out.println(string);

????????????}

????????????if?("(".equals(string) && ")".equals(str[i+1])) {

????????????????stack.pop();

????????????????count++;

????????????}else?if?("[".equals(string) && "]".equals(str[i+1])) {

????????????????stack.pop();

????????????????count++;

????????????}else?if?("{".equals(string) && "}".equals(str[i+1])) {

????????????????stack.pop();

????????????????count++;

????????????}else?{

????????????????continue;

????????????}

????????}

????????System.out.println(count);

?

????}

?

}

?

?

總結

以上是生活随笔為你收集整理的JavaSE各阶段练习题----集合-Collection-Set-List的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。