更新時間:2022-11-10 10:42:22 來源:動力節點 瀏覽1891次
1.創建一個HashMap對象,并在其中添加一些學員的姓名和他們的分數:張三,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<String, String> hp =new HashMap<String, String>();
hp.put("張三", "90分");
hp.put("李四", "88分");
Collection<String> con = hp.values();
Iterator<String> it1 = con.iterator();
while(it1.hasNext()) {
System.out.println(it1.next());
}
hp.replace("張三", "99分");
Collection<String> con1 = hp.values();
Iterator<String> 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則結束)");
Scanner sc = new Scanner(System.in);
ArrayList<String> list = new ArrayList<String>();
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()方法遍歷每個元素,調用每個元素的叫的方法(定義Cat類,起碼包含一個Cry()方法,建議結合泛型操作)
Cat類
public class Cat {
public void Cry() {
System.out.println("貓喵喵~~");
}
}
測試方法
import java.util.*;
public class Third {
public static void main(String[] args) {
Map<Integer, Cat> map = new HashMap<Integer, Cat>();
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類型的對象。往集合內添加多個元素,分別使用foreach語句,Iterator方式循環
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<Student> hs = new HashSet<Student>();
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<Student> 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.**隨機生成不重復的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.**隨機生成100個小寫字母,同時統計每個字母生成了多少個
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<list.size();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()+"次數:"+e.getValue());
}
}
}
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習