Java-11.18/19作业

来源:互联网 发布:网络现金赌博备用网址 编辑:程序博客网 时间:2024/06/08 00:00

A:简答题

  1. 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<Map.Entry<K,V>> entrySet()遍历功能

public V get(Object key):   获取键

public Set<K> keySet() :    遍历方式

public Collection<V> values():  

public int size()长度

Collections

public static <T> void sort(List<T> list) :   排序功能(自然)

public static <T> int binarySearch(List<?> list,T key)二分查找

public static <T> T max(Collection<?> coll)   获取最大值

public static void reverse(List<?> list)     反转功能

public static void shuffle(List<?> list)      随机置换功能

public static <T> void sort(List<T> list) : 排序功能(自然)

public static <T> void sort(List<T> list, Comparator<T> c) 排序功能(比较器)

 

  1. 2.请说明Map接口和Collection接口的区别

     Collection存储单列元素或值,  Map存储双列元素或值,且Map集合的数据结构只跟键有关

      keySet()       entrySet()

  1. 4.请说明HashMapHashtable的区别

    HashMap: 线程不安全,效率高.允许null值和null

    Hashtable: 线程安全 ,效率低.不允许null值和null

    集合工具类 Collections针对的是 Collection集合

  1. 6.请自己整理份集合知识点文档

B:看程序写结果(写出自己的分析理由),程序填空,改错,看程序写结果。

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;

}

}

答案: 第三行 无参构造 添加   super()

  1. 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 );

}

}

}

答案: Kevin 键相同值覆盖

  1. 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);

}

}

}

答案:"宝马x5", 2014  Kevin

  1. 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 );

}

}

}

 答案: 11—Tom              键相同值覆盖     treeMap有排序功能

                            23--Kevin

                            45--David


  1. 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);

}

}

}

答案:  如何比较品牌?    宝马X5, 2014    David    奥迪Q7, 2014  Jim  奥迪A4L, 2014    Kevin

C:编程题

  1. 1.请编写程序,统计一个字符串中每个字符出现的次数
  2. package org.lemon.MapTest;import java.util.HashMap;import java.util.Scanner;import java.util.Set;/** * @author zhaojiangbo 需求:用户随便输入一段字符串 统计字符串中每个字符出现的次数 */public class MapTestDemo {public static void main(String[] args) {// 创建hashmap对象HashMap<Character, Integer> map = new HashMap<Character, Integer>();Scanner sc = new Scanner(System.in);System.out.println("请输入一串字母");String str = sc.nextLine();// 把字符串转成一个字符数组char[] chs = str.toCharArray();// 遍历这个数组for (char key : chs) {Integer value = map.get(key);if (value == null) {map.put(key, 1);} else {value++;map.put(key, value);// 键相同,值覆盖}}// 遍历Set<Character> keySet = map.keySet();StringBuilder sb = new StringBuilder();for (Character ch : keySet) {sb.append(ch).append("(").append(map.get(ch)).append(")");}System.out.println(sb.toString());}}


  3. 2.请编写程序,存储自定义对象到HashMap集合中,并采用两种方式遍历
  4. package org.lemon.Map;//HashMap集合键是String,值是Studentimport java.util.HashMap;import java.util.Map.Entry;import java.util.Set;/** * @author zhaojiangbo */public class HashMapDemo {    public static void main(String[] args) {//创建hashmap集合    HashMap<String, Student> hm = new HashMap<String, Student>();//添加        hm.put("s1", new Student("我",12));hm.put("s2", new Student("依",15));hm.put("s3", new Student("然",17));hm.put("s4", new Student("爱",14));hm.put("s5", new Student("你",11));hm.put("s5", new Student("你",11));//遍历 方法1Set<String> keySet = hm.keySet();for(String s : keySet) {System.out.println(s +"---"+ hm.get(s).getName()+"---"+hm.get(s).getAge());}        System.out.println("------------------");//遍历 方式2Set<Entry<String,Student>> entrySet = hm.entrySet();for(Entry<String,Student> en :entrySet) {String key = en.getKey();Student value = en.getValue();System.out.println(key +"---"+value.getName()+"---"+value.getAge() );}}}

    package org.lemon.Map;public class Student {  private String name;  private int age;  public Student() {super();}public Student(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Student [getName()=" + getName() + ", getAge()=" + getAge() + "]";}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + age;result = prime * result + ((name == null) ? 0 : name.hashCode());return result;}@Overridepublic 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;}}  


  1. 3.请编写程序,存储自定义对象到TreeMap集合中,并采用两种方式遍历
  2. package org.lemon.Map2;import java.util.Map.Entry;import java.util.Set;import java.util.TreeMap;/** * @author zhaojiangbo *键是 Student 类型的 值是String 类型的 数据 *排序的元素必须实现Comparable接口 重写CmcompareTo(T)方法 */public class TreeMapDemo3 {   public static void main(String[] args) {//创建treemap对象   TreeMap<Student,String> treeMap = new TreeMap<Student,String>();//添加   treeMap.put(new Student("放逐之刃",23), "s1" );   treeMap.put(new Student("疾风剑豪",20), "s2");   treeMap.put(new Student("圣枪游侠",21), "s3");   treeMap.put(new Student("机械先驱",25), "s4");   treeMap.put(new Student("麦林炮手",22), "s5");//遍历   Set<Entry<Student,String>> entrySet = treeMap.entrySet();   for(Entry<Student,String> en : entrySet) {   Student key = en.getKey();   String value = en.getValue();   System.out.println(key.getName()+"---"+key.getAge()+"---"+value);     } }}

    package org.lemon.Map2;public class Student implements Comparable<Student>{   private String name;   private int age;   public Student() {super();}public Student(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + age;result = prime * result + ((name == null) ? 0 : name.hashCode());return result;}@Overridepublic 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;}@Overridepublic int compareTo(Student o) {// TODO Auto-generated method stub return 1;}   }


  1. 4.请编写程序,完成集合嵌套,并遍历

HashMap嵌套HashMap

HashMap嵌套ArrayList

package org.lemon.MapTest;import java.util.HashMap;import java.util.Set;/** * @author zhaojiangbo * 输出: * 基础班 高圆圆 ---20     黄晓波 ---22   就业班 杨桃--- 21 果然 ---23 */public class MapTestDemo2 {  public static void main(String[] args) {// 创建2个 小的集合  HashMap<String,Integer> basicMap = new HashMap<String, Integer>();  basicMap.put("高圆圆", 20);  basicMap.put("黄晓波", 22);  HashMap<String, Integer> workMap = new HashMap<String, Integer>();  workMap.put("杨桃", 21);  workMap.put("果然", 23);//创建大集合  HashMap<String,HashMap<String,Integer>> superMap = new HashMap<String, HashMap<String,Integer>>();  superMap.put("基础班", basicMap);  superMap.put("就业班", workMap);  //遍历大集合  Set<String> keySet = superMap.keySet();  for(String s : keySet) {  System.out.println(s);// 拿出每一个小集合    HashMap<String,Integer> hashMap = superMap.get(s);//再遍历小集合  Set<String> smallSet = hashMap.keySet();  for(String s2 : smallSet) {  System.out.println("\t"+s2 +"---"+hashMap.get(s2));  }  System.out.println();  }}}


  1. 5.请编写程序,完成模拟斗地主案例
package org.lemon.Poker;import java.util.ArrayList;import java.util.Collections;public class PokerGameDemo {public static void main(String[] args) {// 斗地主 实现 发牌 和看牌// 创建一个牌盒子ArrayList<String> pokerBox = new ArrayList<String>();// 定义花色数组String[] colors = { "♥", "♠", "♦", "♣" };        // 定义牌号数组String[] nums = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };// 循环拼牌for (String color : colors) {for (String num : nums) {pokerBox.add(color + num);}}// 添加大小王pokerBox.add("☼");pokerBox.add("☽");// 洗牌Collections.shuffle(pokerBox);Collections.shuffle(pokerBox);Collections.shuffle(pokerBox);// 发牌 三个人 一副底牌// 创建三个人的集合ArrayList<String> 高圆圆 = new ArrayList<>();ArrayList<String> 杨桃 = new ArrayList<>();ArrayList<String> 黄晓波 = new ArrayList<>();ArrayList<String> 底牌 = new ArrayList<>();// 发牌// 吴宗宪 0 3 6// 周星驰 1 4 7// 曾志伟 2 5 8for (int i = 0; i < pokerBox.size(); i++) {// 留底牌if (i >= pokerBox.size() - 3) {底牌.add(pokerBox.get(i));} else if (i % 3 == 0) {高圆圆.add(pokerBox.get(i));} else if (i % 3 == 1) {杨桃.add(pokerBox.get(i));} else if (i % 3 == 2) {黄晓波.add(pokerBox.get(i));}}// 看牌lookPai("高圆圆", 高圆圆);lookPai("杨桃", 杨桃);lookPai("黄晓波", 黄晓波);lookPai("底牌", 底牌);// System.out.println(pokerBox);}private static void lookPai(String string, ArrayList<String> list) {System.out.println(string);for (String pai : list) {System.out.print(pai + "  ");}System.out.println();}}


1:需求:递归删除带内容的目录 假设删除当前项目下的目录:demo,demo中可以有文件夹自己给出
2:需求:请大家把E:\JavaSE目录下所有的java结尾的文件的绝对路径给输出在控制台。
package org.lemon.File;import java.io.File;/** * @author Lemon */public class FileTestDemo {   public static void main(String[] args) {File file = new File("E:\\JavaSE");File[] listArray = file.listFiles();if(listArray!=null) {for(File f :listArray) {if(file.isFile()) {if(file.getName().endsWith(".java")) {System.out.println(f.getName());}}}}}}


3:下面程序段的执行结果是什么?(  D )
  public class Foo{ 
   public static void main(String[] args){ 
    try{
      return;} 
      finally{System.out.println("Finally");
     } 
   } 
  }
A.编译能通过,但运行时会出现一个例外。  B.程序正常运行,并输出 "Finally"。
C.程序正常运行,但不输出任何结果。 D.因为没有catch语句块,所以不能通过编


4:对于已经被定义过可能抛出异常的语句,在编程时( A )。
A.必须使用try/catch语句处理异常,或用throw将其抛出。
B.如果程序错误,必须使用 try/catch语句处理异常。
C.可以置之不理。
D.只能使用try/catch语句处理。


5:哪个关键字可以抛出异常?( B )
A.transient      B.throw     C.finally      D.catch
6:请问所有的异常类皆继承哪一个类?( B  )
A.java.lang.Throwable   B.java.lang.Exception
C.java.lang.Error  D.java.io.Exception
7.System类在哪个包中?( B )
A.java.awt     B.java.lang   C.java.util   D.java.io




原创粉丝点击