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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java集合类习题_Java集合练习

發(fā)布時間:2024/8/1 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java集合类习题_Java集合练习 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

JavaCollectionExercise

Java集合練習(xí)

創(chuàng)建一個HashMap對象,并在其中添加一些學(xué)員的姓名和他們的分?jǐn)?shù):張三,90分,李四,88分。然后從HashMap對象獲取這兩個人的成績并顯示出來,接著把張三的成績改為99分,再把他們的成績顯示出來。

import java.util.Collection;

import java.util.HashMap;

import java.util.Iterator;

public class First {

public static void main(String[] args) {

HashMap hp =new HashMap();

hp.put("張三", "90分");

hp.put("李四", "88分");

Collection con = hp.values();

Iterator it1 = con.iterator();

while(it1.hasNext()) {

System.out.println(it1.next());

}

hp.replace("張三", "99分");

Collection con1 = hp.values();

Iterator it2 = con.iterator();

while(it2.hasNext()) {

System.out.println(it2.next());

}

}

}

2.定義一個ArrayList集合類,然后放入多個字符串,排序,反序(Collections 集合工具類中包含了排序等功能)

用Iterator遍歷集合

import java.util.*;

public class Second {

public static void main(String[] args) {

System.out.println("請隨意輸入一堆字符串:(輸入0則結(jié)束)");

Scanner sc = new Scanner(System.in);

ArrayList list = new ArrayList();

for(;;) {

String s = sc.next();

if(s.equals("0")) {

break;

}

list.add(s);

}

Collections.sort(list);

Iterator iterator = list.iterator();

System.out.println("排序后");

while(iterator.hasNext()) {

System.out.println(iterator.next());

}

iterator = list.iterator();

System.out.println("反序后");

Collections.reverse(list);

while(iterator.hasNext()) {

System.out.println(iterator.next());

}

sc.close();

}

}

3.定義一個Map集合,key是Integer類型,value是Cat類型,

然后使用values()方法遍歷每個元素,調(diào)用每個元素的叫的方法

(定義Cat類,起碼包含一個Cry()方法,建議結(jié)合泛型操作)

Cat類

public class Cat {

public void Cry() {

System.out.println("貓喵喵~~");

}

}

測試方法

import java.util.*;

public class Third {

public static void main(String[] args) {

Map map = new HashMap();

map.put(new Integer(1), new Cat());

map.put(new Integer(2), new Cat());

map.put(new Integer(3), new Cat());

map.put(new Integer(4), new Cat());

map.put(new Integer(5), new Cat());

Collection coll = map.values();

Iterator iterator = coll.iterator();

while (iterator.hasNext()) {

Cat cat = (Cat) iterator.next();

cat.Cry();

}

}

}

4.定義一個HashSet集合,只能添加Student類型的對象。

往集合內(nèi)添加多個元素,分別使用foreach語句,Iterator方式循環(huán)

Student類

public class Student {

String name;

int age;

@Override

public int hashCode() {

final int prime = 31;

int result = 1;

result = prime * result + age;

result = prime * result + ((name == null) ? 0 : name.hashCode());

return result;

}

@Override

public String toString() {

return "Student [name=" + name + ", age=" + age + "]";

}

@Override

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

Student other = (Student) obj;

if (age != other.age)

return false;

if (name == null) {

if (other.name != null)

return false;

} else if (!name.equals(other.name))

return false;

return true;

}

public Student(String name, int age) {

super();

this.name = name;

this.age = age;

}

}

測試類

import java.util.HashSet;

import java.util.Iterator;

public class Fourth {

public static void main(String[] args) {

HashSet hs = new HashSet();

hs.add(new Student("張三",20));

hs.add(new Student("李四",19));

hs.add(new Student("王五",16));

hs.add(new Student("張大",18));

hs.add(new Student("李二",20));

Iterator iterator = hs.iterator();

System.out.println("Iterator輸出");

while(iterator.hasNext()) {

System.out.println(iterator.next());

}

System.out.println("*************************************");

System.out.println("for-each輸出");

for(Student s : hs) {

System.out.println(s);

}

}

}

5.**隨機(jī)生成不重復(fù)的26個小寫字母,生成26個后就停止生成。

import java.util.*;

public class Fifth {

/**

* @Description:

* @author LYL

* @date 2021-01-10 12:48:38

*/

public static void main(String[] args) {

HashSet hs = new HashSet();

Random r = new Random();

for(;;) {

int i = (r.nextInt(122-97+1)+97);

char ch = (char)i;

if(hs.size()>=26) {

break;

}

hs.add(ch);

}

Iterator iterator = hs.iterator();

while(iterator.hasNext()) {

System.out.println(iterator.next());

}

}

}

6.**隨機(jī)生成100個小寫字母,同時統(tǒng)計每個字母生成了多少個

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map.Entry;

public class Sixth {

public static void main(String[] args) {

ArrayList list = new ArrayList();

for(int i=0;i<100;i++) {

int x = 97+(int)(Math.random()*26);

list.add((char)x);

}

HashMap map = new HashMap();

for(int i=0;i

if(map.containsKey(list.get(i))) {

int times = (int)(map.get(list.get(i)))+1;

map.put(list.get(i), times);

}else {

map.put(list.get(i),1);

}

}

Iterator it = map.entrySet().iterator();

while(it.hasNext()){

Entry e = (Entry) it.next();

System.out.println("字母:"+e.getKey()+"次數(shù):"+e.getValue());

}

}

}

編寫一個程序,使用ArrayList存儲客戶的郵件地址。地址中應(yīng)該包含姓名、街道、市(縣)、省(自治區(qū))、國家(地區(qū))和代碼,然后顯示ArrayList中的內(nèi)容,此程序的輸出結(jié)果應(yīng)該如下:(需重寫地址類的toString方法)將第題中的ArrayList實現(xiàn)排序。

a)提示:排序必須先實現(xiàn)該類對象能比較大小。

b)地址先按比較國家,相同則比較城市,再相同則比較街道,再相同則比較姓名

EmailAddress類

public class EmailAddress implements Comparable {

String name;

String street;

String city;

String state;

String country;

String pinCode;

public EmailAddress(String name, String street, String city, String state, String country, String pinCode) {

super();

this.name = name;

this.street = street;

this.city = city;

this.state = state;

this.country = country;

this.pinCode = pinCode;

}

@Override

public String toString() {

return "EmailAddress [\n name:" + name + "\n street:" + street + "\n city:" + city + " state:" + state

+ "\n country:" + country + "\n pinCode:" + pinCode + "\n]";

}

@Override

public int compareTo(Object o) {

//如果傳入的類型是EmailAddress類型則進(jìn)入比較,否則拋出數(shù)據(jù)不匹配的異常

if (o instanceof EmailAddress) {

//將傳入的Object類型轉(zhuǎn)換為EmailAddress類型

EmailAddress ea = (EmailAddress) o;

//如果國家相同則比較城市,否則直接返回對應(yīng)數(shù)值

if (country.compareTo(ea.country) == 0) {

//如果城市相同則比較街道,否則直接返回對應(yīng)數(shù)值

if (city.compareTo(ea.city) == 0) {

//如果街道相同則比較名字,否則直接返回對應(yīng)數(shù)值

if (street.compareTo(ea.street) == 0) {

//如果名字也相同則返回0,否則直接返回對應(yīng)數(shù)值

if (name.compareTo(ea.name) != 0) {

return 0;

} else {

return name.compareTo(ea.name);

}

} else {

return street.compareTo(ea.street);

}

} else {

return city.compareTo(ea.city);

}

} else {

return country.compareTo(ea.country);

}

}

throw new RuntimeException("傳入數(shù)據(jù)類型不匹配");

}

}

測試類

import java.util.ArrayList;

import java.util.Arrays;

public class Test {

public static void main(String[] args) {

ArrayList al1 = new ArrayList();

EmailAddress ea1 = new EmailAddress ("張三","韶山南路","長沙市","湖南省","c","1001");

EmailAddress ea2 = new EmailAddress ("李四","韶山西路","長沙市","湖南省","b","1002");

EmailAddress ea3 = new EmailAddress ("王五","韶山東路","長沙市","湖南省","a","1003");

al1.add(ea1);

al1.add(ea2);

al1.add(ea3);

//for(int i=0;i

//System.out.println(al1.get(i));

//}

Object[] arr = al1.toArray();

Arrays.sort(arr);

System.out.println(Arrays.toString(arr));

}

}

總結(jié)

以上是生活随笔為你收集整理的java集合类习题_Java集合练习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。