Java-11.18/19作业
来源:互联网 发布:网络现金赌博备用网址 编辑:程序博客网 时间:2024/06/08 00:00
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<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) 排序功能(比较器)
- 2.请说明Map接口和Collection接口的区别
Collection存储单列元素或值, Map存储双列元素或值,且Map集合的数据结构只跟键有关
keySet() entrySet()
- 4.请说明HashMap和Hashtable的区别
HashMap: 线程不安全,效率高.允许null值和null键
Hashtable: 线程安全 ,效率低.不允许null值和null键
集合工具类 Collections针对的是 Collection集合
- 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.给出以下代码,请问该程序的运行结果是什么?如有问题,请说明原因。
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 键相同值覆盖
- 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
- 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
- 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.请编写程序,统计一个字符串中每个字符出现的次数
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());}}
- 2.请编写程序,存储自定义对象到HashMap集合中,并采用两种方式遍历
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;}}
- 3.请编写程序,存储自定义对象到TreeMap集合中,并采用两种方式遍历
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;} }
- 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(); }}}
- 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();}}
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
- 11.18/19-Java-作业
- Java-11.18/19作业
- 11.18java作业
- java作业11.18
- JAVA作业10-19
- JAVA作业
- Java作业
- Java作业
- java作业
- java作业
- JAVA作业
- java作业
- java作业
- Java作业。。。
- java作业。。。
- Java作业
- java作业
- java作业
- ijkplayer简单实现
- GET,POST,PUT,DELETE的区别
- 源码分析之应用加载过程解析AndroidManifest
- mybatis-one-one
- Apache Http Server 2.2x 与 2.4x 对比
- Java-11.18/19作业
- 使用spring等框架的web程序在Tomcat下的启动顺序及思路理清
- 软件调试笔记9
- 第九周项目三
- NSFontAttributeName
- 简单解析PHP程序的运行流程
- 云星数据---Scala实战系列(精品版)】:Scala入门教程002-Scala数组详解001
- 一 mybatis操作oracle数据库
- pta