作业:
4.C
6.A
7.hashCode()方法前面应该加修饰符public,salary是double类型的,应该强转为int类型
name属性是String类型的,应该用equals比较
set接口是无序的,没有提供使用下标查询的元素的方法
8.
import java.util.HashSet;
import java.util.Set;
public class Question7 {
public static void main(String[] args){
Set<Worker> set = new HashSet<Worker>();
set.add(new Worker("tom",18,2000));
set.add(new Worker("tom",18,2000));
set.add(new Worker("jerry",18,2000));
System.out.println(set.size());
for (Worker worker : set) {
System.out.println(worker.toString());
}
}
}
class Worker{
String name;
int age;
double salary;
public Worker(){}
public Worker(String name,int age,double salary){
this.name = name;
this.age = age;
this.salary = salary;
}
public String toString(){
return name + "\t" + age + "\t" + salary;
}
public int hashCode(){
return this.name.hashCode() + this.age + (int)this.salary;
}
public boolean equals(Object obj) {
System.out.println("equals运行");
if(this == obj){
return true;
}
if(obj == null){
return false;
}
if(this.getClass() != obj.getClass()){
return false;
}
Worker s = (Worker)obj;
if(this.name.equals(s.name) && this.age == s.age && this.salary == s.salary){
return true;
}
return false;
}
}
运行结果:
9. 1)覆盖 插入
2) 1 删除该键所对应的值
3)获取键值对 键 值
4)keySet() Set
5) entrySet() Set
10.
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Question10 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1930, "乌拉圭");
map.put(1934, "意大利");
map.put(1938, "意大利");
map.put(1950, "乌拉圭");
map.put(1954, "德国");
map.put(1958, "巴西");
map.put(1962, "巴西");
map.put(1966, "英格兰");
map.put(1970, "巴西");
map.put(1974, "德国");
map.put(1978, "阿根廷");
map.put(1982, "意大利");
map.put(1986, "阿根廷");
map.put(1990, "德国");
map.put(1994, "巴西");
map.put(1998, "法国");
map.put(2002, "巴西");
map.put(2006, "意大利");
System.out.println("请输入一个年份(1930~2006):");
int a = sc.nextInt();
if(map.get(a) != null){
System.out.println(map.get(a));
}else{
System.out.println("没有举办世界杯");
}
}
}
运行结果:
11.
import java.util.HashMap;
import java.util.Map;
public class Question11 {
public static void main(String[] args){
Map<String,String> map = new HashMap<String,String>();
map.put("Tom", "CoreJava");
map.put("John", "Oracle");
map.put("Susan", "Oracle");
map.put("Jerry", "JDBC");
map.put("Jim", "Unix");
map.put("Kevin", "JSP");
map.put("Lucy", "JSP");
map.put("Allen", "JDBC");
map.replace("Lucy", "CoreJava");
System.out.println(map.entrySet());
for (String string : map.keySet()) {
if(map.get(string).equals("JSP")){
System.out.println(string);
}
}
}
}
运行结果:
12.B
13.
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Question10 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1930, "乌拉圭");
map.put(1934, "意大利");
map.put(1938, "意大利");
map.put(1950, "乌拉圭");
map.put(1954, "德国");
map.put(1958, "巴西");
map.put(1962, "巴西");
map.put(1966, "英格兰");
map.put(1970, "巴西");
map.put(1974, "德国");
map.put(1978, "阿根廷");
map.put(1982, "意大利");
map.put(1986, "阿根廷");
map.put(1990, "德国");
map.put(1994, "巴西");
map.put(1998, "法国");
map.put(2002, "巴西");
map.put(2006, "意大利");
System.out.println("请输入一个年份(1930~2006):");
int a = sc.nextInt();
if(map.get(a) != null){
System.out.println(map.get(a));
}else{
System.out.println("没有举办世界杯");
}
System.out.println("请输入一支球队名称:");
String str = sc.next();
if(map.containsValue(str)){
for (Integer in : map.keySet()) {
if(map.get(in).equals(str)){
System.out.print(in + "\t");
}
}
}else{
System.out.println("没有获得过世界杯");
}
}
}
运行结果:
14.
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class TestMap {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = sc.next();
Map<Character,Integer> map = new HashMap<Character,Integer>();
for (char ch : str.toCharArray()) {
if(map.get(ch) == null){
map.put(ch, 1);
}else{
map.put(ch, map.get(ch) + 1);
}
}
System.out.println(map.entrySet());
}
}
运行结果: