Loading

Java_Day16_作业

A:简答题
1、请把我们讲解过的所有类中的方法在API中找到,并使用自己的话进行描述
答案:
Map
public V put(K key, V value):
public void clear():
public V remove(Object key):
public boolean containsKey(Object key):
public boolean containsValue(Object value):
public boolean isEmpty():
public Set

class Car {
private String brand;//品牌
private int year; //制造年份
public Car () {}
public Car (String brand, int year) {
this.brand = brand;
this.year = year;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getBrand(){
return brand;
}
public void setYear(int year) {
this.year = year;
}
public int getYear(){
return year;
}
}

1、给出以下代码,请问该程序的运行结果是什么?如有问题,请说明原因。

class Test {
public static void main(String[] args) {
HashMap<Integer, String> hm = new HashMap<Integer, String>();
hm.put(new Integer(23), "Jim");
hm.put(new Integer(23), "Kevin");
Set<Integer> keys = hm.keySet();
for (Integer key : keys) {
String value = hm.get(key);
System.out.println( value );
}
}
}

2、给出以下代码,已定义好Car类,请问该程序的运行结果是什么?如有问题,请说明原因。

class Test {
    public static void main(String[] args) {
        HashMap<Car, String> hm = new HashMap<Car, String>();
        hm.put(new Car("宝马x5", 2014), "Jim");
        hm.put(new Car("宝马x5", 2014), "Kevin");
        Set<Car> cars = hm.keySet();
        for (Car car : cars) {
            String value = hm.get(car);
            System.out.println(value);
        }
    }
}   

3、给出以下代码,请问该程序的运行结果是什么?如有问题,请说明原因。

class Test {
public static void main(String[] args) {
TreeMap<Integer, String> tm = new TreeMap<Integer, String>();
tm.put(new Integer(11), "Tom");
tm.put(new Integer(45), "David");
tm.put(new Integer(23), "Jim");
tm.put(new Integer(23), "Kevin");

Set<Integer> keys = tm.keySet();
for (Integer key : keys) {
String value = tm.get(key);
System.out.println( key +"--"+value );
}
}
}

4、给出以下代码,已定义好Car类,请问该程序的运行结果是什么?如有问题,请说明原因。

class Test {
    public static void main(String[] args) {
        TreeMap<Car, String> tm = new TreeMap<Car, String>(
                new Comparator<Car>() {
                    @Override
                    public int compare(Car c1, Car c2) {
                        int num1 = c1.getYear() - c2.getYear();
                        int num2 = (num1 == 0) ? (c1.getBrand().compareTo(c2
                                .getBrand())) : num1;
                        return num2;
                    }
                });
        tm.put(new Car("宝马X5", 2014), "Tom");
        tm.put(new Car("宝马X5", 2014), "David");
        tm.put(new Car("奥迪Q7", 2014), "Jim");
        tm.put(new Car("奥迪A4L", 2014), "Kevin");
        Set<Car> cars = tm.keySet();
        for (Car car : cars) {
            String value = tm.get(car);
            System.out.println(car.getBrand() + "--" + car.getYear() + "--"
                    + value);
        }
    }
}

C:编程题
1、请编写程序,统计一个字符串中每个字符出现的次数
答:

package StudentWork2;

import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;

/**
 * 1、请编写程序,统计一个字符串中每个字符出现的次数
 * @author Aoman_Hao
 */
public class Day16_Work1 {

    public static void main(String[] args) {
        //屏幕录入
        Scanner sc = new Scanner(System.in);
        System.out.println("输入一串字符:");
        String Str = sc.next();
        System.out.println(Str);

        HashMap<Character, Integer> Ha = new HashMap<Character, Integer>();
        //转为数组
        char[] arr = Str.toCharArray();
        if(arr.length !=0){
            for(char i:arr){

                Integer value = Ha.get(i);
                //第一次录入,值对应为null。第二次录入读取上一次录入的值。
                if(value==null){
                    Ha.put(i, 1);               
                }else{
                    value++;
                    Ha.put(i, value);
                }
        }
            //键集合,存储容器,遍历拼接,输出
            Set<Character> Ha_keyset = Ha.keySet();
            StringBuffer Sb = new StringBuffer();
            for(Character key:Ha_keyset){
                    Sb.append(key).append(":").append(Ha.get(key)).append("个").append("\r\n");
            }
            System.out.println(Sb);
        }       
        }           
    }
    输出:
输入一串字符:
adadadad
adadadad
d:4个
a:4

2、请编写程序,存储自定义对象到HashMap集合中,并采用两种方式遍历

package StudentWork2;

import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;

/**
 * @author Aoman_Hao
 */
public class Day16_Work2_HashMap {

    public static void main(String[] args) {
        HashMap<Student, String> Hash = new HashMap<Student, String>();

        Hash.put(new Student("依依", 22), "s1");
        Hash.put(new Student("尔尔", 23), "s5");
        Hash.put(new Student("散散", 24), "s7");
        //获得键的集合,遍历
        Set<Student> Hash_keyset = Hash.keySet();
        StringBuffer Sb = new StringBuffer();
        if(!Hash_keyset.isEmpty()){
            for(Student key:Hash_keyset){
                Sb.append("姓名:").append(key.getName()).append("年龄:").append(key.getAge()).append("编号:").append(Hash.get(key)).append("\r\n");
        }
        System.out.println(Sb);
        }

        //获得键值对的集合,遍历
        Set<Entry<Student, String>> Hash_entry = Hash.entrySet();
        StringBuffer Sb2 = new StringBuffer();
        if(!Hash_entry.isEmpty()){
            for(Entry<Student, String> Stu:Hash_entry){
                Sb2.append("姓名:").append(Stu.getKey().getName()).append("\t")
                .append("年龄:").append(Stu.getKey().getAge()).append("\t")
                .append("编号:").append(Stu.getValue()).append("\r\n");
            }
        }System.out.println(Sb2);
    }
}
输出:
姓名:依依年龄:22编号:s1
姓名:散散年龄:24编号:s7
姓名:尔尔年龄:23编号:s5

姓名:依依   年龄:22   编号:s1
姓名:散散   年龄:24   编号:s7
姓名:尔尔   年龄:23   编号:s5

3、请编写程序,存储自定义对象到TreeMap集合中,并采用两种方式遍历
4、请编写程序,完成集合嵌套,并遍历
jc 基础班
张三 20
李四 22
jy 就业班
王五 21
赵六 23

package StudentWork2;

import java.util.HashMap;
import java.util.Set;

/**
 * jc   基础班
                    张三      20
                    李四      22
            jy  就业班
                    王五      21
                    赵六      23
 * @author Aoman_Hao
 */
public class Day16_work3 {

    public static void main(String[] args) {

        //小集合
        HashMap<String, Integer> JC = new HashMap<String,Integer>();
        HashMap<String, Integer> JY = new HashMap<String,Integer>();
        //大集合
        HashMap<String, HashMap<String, Integer>> Class_Hash = new HashMap<String,HashMap<String, Integer>>();

        JC.put("张三",        20);
        JC.put("李四",        21);
        JY.put("王五",        22);
        JY.put("赵六",        23);

        Class_Hash.put("基础班", JC);
        Class_Hash.put("就业班", JY);

        Set<String> Class_Hash_keyset = Class_Hash.keySet();

        for(String Class_Name_key:Class_Hash_keyset){

            HashMap<String, Integer> Class_name = Class_Hash.get(Class_Name_key);
            Set<String> Class_Nei_key = Class_name.keySet();
            System.out.println(Class_Name_key);

            StringBuffer Sb = new StringBuffer();
            for(String Stu_key:Class_Nei_key){
                Sb.append("\t").append(Stu_key).append("\t").append(Class_name.get(Stu_key))
                .append("\r\n");

            }
            System.out.println(Sb);
        }
    }

}
输出:就业班
    赵六  23
    王五  22

基础班
    张三  20
    李四  21

HashMap嵌套HashMap
HashMap嵌套ArrayList
5、请编写程序,完成模拟斗地主案例

posted @ 2017-11-20 21:18  AomanHao  阅读(12)  评论(0)    收藏  举报