一选择题、
1C 2D 3AD 4B 5C
二简答题
简述java集合框架的二大类接口及区别
答通常说java的集合框架有两大类接口即Collection和Map,其中Collection有两个子接口即List和Set
Collection接口存储一组不唯无序的对象。
Set 接口继承Collection接口,存储一组唯一(不允许重复),无序的对象。
List 接口继承Collection接口,存储一组不唯一(允许重复),有序(以元素插入的次序来放置元素,不会重新排列)的对象。
Map接口存储一组(键-值)对象,提供key(键)到value(值)的映射。Map中的key不要求有序,不允许重复。value同样不要求有序,但允许重复。
2根据你的理解请说明ArrayList和LinkedList的区别
答ArrayListh和数组采用相同的存储方式它的优点在于遍历元素和随机访问元素的效率比较高
LinkedList采用链表存储方式优点在于插入删除元素时效比较高
3请说明以下这段java代码是否存在错误如果存在请改正并给运行结果如果不存在请给出运行结果
答改正:String str = (String)pList.get(i);
因为:返回类型Object,应该进行强制类型转换。
运行结果:ABC
4创建一个类Queue代表队列添加add及方法并添加main()方法进行效果验证
package cn.jbit.list;
import java.util.*;
public class Queue {
private LinkedList list = new LinkedList();
public void add(Object obj){
list.addFirst(obj);
}
public Object get(){
return list.removeLast();
}
public static void main(String[] args){
Queue q = new Queue();
q.add(“one”);
q.add(“two”);
q.add(“three”);
int len=q.list.size();
for(int i=0;i<len;i++){
System.out.println(q.get());
}
}
}
5创建一个HashMap对象并在其中添加一些学员的姓名和他们的分数键为学员姓名值为学员分数从HaspMap对象中获取这些学员的成绩并输出修改其中一名学生的成绩然后再次输出所有学员的成绩
package cn.jbit.map;
import java.util.HashMap;
import java.util.Map;
public class MapTest {
public static void main(String[] args){
Map<String,Integer> map = new HashMap<String,Integer>();
//向HashMap中存放几个键-值对
map.put(“张三”,80);
map.put(“李四”,70);
map.put(“王二”,90);
System.out.println(“成绩单如下:\n姓名\t成绩”);
for(String key:map.keySet())
System.out.println(key+"\t"+map.get(key));
//修改张三的成绩
map.put(“张三”,100);
System.out.println(“修改后的成绩单如下:\n姓名\t成绩”);
for(String key:map.keySet())
System.out.println(key+"\t"+map.get(key));
}
}
上机练习
1使用List存储企鹅信息
package cn.jbit.exec; /** * 宠物企鹅。 * @author 北大青鸟 */ public class Penguin {
String name = "无名氏"; // 昵称 int health = 100; // 健康值 int love = 0; // 亲密度 String
sex = "Q仔"; // 性别 /** * 两个参数构造方法。 */ public Penguin(String name, String sex) {
this.name = name; this.sex = sex; } public String getName() { return name; }
public void setName(String name) { this.name = name; } public String getSex() {
return sex; } public void setSex(String sex) { this.sex = sex; } } package
cn.jbit.exec; import java.util.ArrayList; import java.util.List; /** *
使用ArryList存储和处理企鹅信息。 * @author 北大青鸟 */ public class Test1 { public static void
main(String[] args) { // 1、创建多个企鹅对象 Penguin ououPenguin = new Penguin("欧欧",
"Q仔"); Penguin yayaPenguin = new Penguin("亚亚", "Q妹"); Penguin meimeiPenguin =
new Penguin("美美", "Q妹"); Penguin feifeiPenguin = new Penguin("菲菲", "Q妹"); //
2、创建ArrayList集合对象并把多个企鹅对象放入其中 List penList = new ArrayList();
penList.add(ououPenguin); penList.add(yayaPenguin); penList.add(meimeiPenguin);
penList.add(2, feifeiPenguin); // 添加feifeiPenguin到指定位置 // 3、输出集合中企鹅的数量
System.out.println("共计有" + penList.size() + "只企鹅。"); // 4、通过遍历集合显示各只企鹅信息
System.out.println("分别是:"); for (int i = 0; i < penList.size(); i++) { Penguin
dog = (Penguin) penList.get(i); System.out.println(dog.getName() + "\t" +
dog.getSex()); } // 5、删除集合中第一个企鹅和feifeiPenguin企鹅
penList.remove(penList.size()-1); penList.remove(feifeiPenguin); //
6、显示删除后集合中各只企鹅信息 System.out.println("\n删除之后还有" + penList.size() + "只企鹅。");
System.out.println("分别是:"); for (int i = 0; i < penList.size(); i++) { Penguin
dog = (Penguin) penList.get(i); System.out.println(dog.getName() + "\t" +
dog.getSex()); } //7、判断集合中是否包含指定企鹅信息 if(penList.contains(meimeiPenguin))
System.out.println("\n集合中包含美美的信息"); else System.out.println("\n集合中不包含美美的信息"); }
}
2根据宠物昵称查找宠物
package cn.jbit.exec; /** * 宠物狗。 * @author 北大青鸟 */ public class Dog { private
String name; // 昵称 private int health = 100; // 健康值 private int love = 10; //
亲密度 private String strain; // 品种 /** * 构造函数。 * @param name 昵称 * @param strain
品种 */ public Dog(String name,String strain) { this.name = name; this.strain =
strain; } /** * 返回狗狗的昵称。 * @return 昵称 */ public String getName() { return name;
} /** * 返回狗狗的健康值。 * @return 健康值 */ public int getHealth() { return health; }
/** * 返回狗狗和主人的亲密度。 * @return 亲密度 */ public int getLove() { return love; } /** *
返回狗狗的品种。 * @return 品种 */ public String getStrain() { return strain; } } package
cn.jbit.exec; import java.util.HashMap; import java.util.Map; /** *
根据宠物的昵称查找宠物。 * @author 北大青鸟 */ public class Test2 {
@SuppressWarnings("unchecked") public static void main(String[] args) { //
1、创建多个狗狗对象 Dog ououDog = new Dog("欧欧", "雪娜瑞"); Dog yayaDog = new Dog("亚亚",
"拉布拉多"); Dog meimeiDog = new Dog("美美", "雪娜瑞"); Dog feifeiDog = new Dog("菲菲",
"拉布拉多"); // 2、将多个狗狗对象放入Map中,取昵称为键名 Map dogs = new HashMap(); dogs.put("欧欧",
ououDog); dogs.put("亚亚", yayaDog); dogs.put("美美", meimeiDog); dogs.put("菲菲",
feifeiDog); // 3、判断Map中是否存在指定key的值对象 if (dogs.containsKey("欧欧")) { //
3.1如果存在,输出值对象信息 Dog dog = (Dog) dogs.get("欧欧");
System.out.println("Map中存在指定对象,对象信息如下:"); System.out.println(dog.getName() +
"\t" + dog.getStrain()); } else { // 3.2、如果不存在,输出说明信息
System.out.println("Map中不存在该对象。"); } } }
3使用Iterator迭代显示存储在Map中的企鹅信息
package cn.jbit.exec; /** * 宠物企鹅。 * @author 北大青鸟 */ public class Penguin {
String name = "无名氏"; // 昵称 int health = 100; // 健康值 int love = 0; // 亲密度 String
sex = "Q仔"; // 性别 /** * 两个参数构造方法。 */ public Penguin(String name, String sex) {
this.name = name; this.sex = sex; } public String getName() { return name; }
public void setName(String name) { this.name = name; } public String getSex() {
return sex; } public void setSex(String sex) { this.sex = sex; } } package
cn.jbit.exec; import java.util.ArrayList; import java.util.HashMap; import
java.util.Iterator; import java.util.LinkedList; import java.util.List; import
java.util.Map; import java.util.Set; /** * 使用HashMap存储和处理企鹅信息。 * @author 北大青鸟
*/ public class Test3 { public static void main(String[] args) { // 1、创建多个企鹅对象
Penguin ououPenguin = new Penguin("欧欧", "Q仔"); Penguin yayaPenguin = new
Penguin("亚亚", "Q妹"); Penguin meimeiPenguin = new Penguin("美美", "Q妹"); Penguin
feifeiPenguin = new Penguin("菲菲", "Q妹"); /* 2、创建HashMap集合对象并把多个企鹅对象放入其中*/ Map
penguinMap=new HashMap(); penguinMap.put(ououPenguin.getName(),ououPenguin);
penguinMap.put(yayaPenguin.getName(),yayaPenguin);
penguinMap.put(meimeiPenguin.getName(),meimeiPenguin);
penguinMap.put(feifeiPenguin.getName(),feifeiPenguin);
/*3、通过迭代器依次输出集合中所有狗狗的信息*/ System.out.println("使用Iterator遍历,所有企鹅的昵称和品种分别是:");
Set keys=penguinMap.keySet();//取出所有key的集合 Iterator
it=keys.iterator();//获取Iterator对象 while(it.hasNext()){ String
key=(String)it.next(); //取出key Penguin penguin=(Penguin)penguinMap.get(key);
//根据key取出对应的值 System.out.println(key+"\t"+penguin.getSex()); } } }
4使用泛型集合显示存储在Map中的企鹅信息
package cn.jbit.exec; /** * 宠物企鹅。 * @author 北大青鸟 */ public class Penguin { int
id; //编号 String name = "无名氏"; // 昵称 int health = 100; // 健康值 int love = 0; //
亲密度 String sex = "Q仔"; // 性别 /** * 两个参数构造方法。 */ public Penguin(String name,
String sex) { this.name = name; this.sex = sex; } /** * 三个参数构造方法。 */ public
Penguin(int id,String name, String sex) { this.id=id; this.name = name;
this.sex = sex; } public int getId() { return id; } public void setId(int id) {
this.id = id; } public String getName() { return name; } public void
setName(String name) { this.name = name; } public String getSex() { return sex;
} public void setSex(String sex) { this.sex = sex; } } package cn.jbit.exec;
import java.util.ArrayList; import java.util.HashMap; import
java.util.Iterator; import java.util.LinkedList; import java.util.List; import
java.util.Map; import java.util.Set; /** * 使用HashMap存储和处理企鹅信息。 * @author 北大青鸟
*/ public class Test4 { public static void main(String[] args) { /*
1、创建多个企鹅对象*/ Penguin ououPenguin = new Penguin(1,"欧欧", "Q仔"); Penguin
yayaPenguin = new Penguin(2,"亚亚", "Q妹"); Penguin meimeiPenguin = new
Penguin(3,"美美", "Q妹"); Penguin feifeiPenguin = new Penguin(4,"菲菲", "Q妹"); /*
2、创建HashMap集合对象并把多个企鹅对象放入其中*/ Map<Integer,Penguin> penguinMap=new
HashMap<Integer,Penguin>(); penguinMap.put(ououPenguin.getId(),ououPenguin);
penguinMap.put(yayaPenguin.getId(),yayaPenguin);
penguinMap.put(meimeiPenguin.getId(),meimeiPenguin);
penguinMap.put(feifeiPenguin.getId(),feifeiPenguin); /*3、通过迭代器依次输出集合中所有狗狗的信息*/
System.out.println("使用Iterator遍历,所有企鹅的昵称和品种分别是:"); Set<Integer>
keys=penguinMap.keySet();//取出所有key的集合 Iterator<Integer>
it=keys.iterator();//获取Iterator对象 while(it.hasNext()){ int key=it.next();
//取出key Penguin penguin=penguinMap.get(key); //根据key取出对应的值
System.out.println(penguin.getName()+"\t"+penguin.getSex()); }
/*4、通过foreach依次输出集合中所有狗狗的信息*/
System.out.println("使用foreach语句遍历,所有企鹅的昵称和品种分别是:"); for(int key:keys){ Penguin
penguin=penguinMap.get(key); //根据key取出对应的值
System.out.println(penguin.getName()+"\t"+penguin.getSex()); } } }