java面向对象第六章

博客包含Java相关选择题与简答题解答。选择题给出答案,简答题涉及List、Set和Map接口特点,ArrayList与LinkedList实现类特性,还对代码错误进行改正并说明需强制类型转换的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

选择题
1.C 2.B 3.AD 4.C 5.C

简答题
1.分别为:List、Set和Map
Set 接口继承Collection接口,存储一组唯一,无序的对象。
List 接口继承Collection接口,存储一组不唯一,有序的对象。
Map 接口存储一组成对的键-值对象,提供key(键)到value(值)的映射。

2.ArrayList是List接口的一个具体实现类,它实现了可变大小的数组,在进行随机访问和遍历元素时,它提供更好的性能。
LinkedList是List接口的一个具体实现类,它提供了额外的addFirst()、addLast()、removeFirst()、removeLast()等方法,可以在LinkedList的首部或尾部进行插入或者删除操作。

3.改正:String str = (String)pList.get(i);
原因:返回类型Object,应该进行强制类型转换。

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());
		}
	}
}
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

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;
	}
	
	
}

public class Test1 {
	public static void main(String[] args) {

		Penguin ououPenguin = new Penguin("欧欧", "Q仔");
		Penguin yayaPenguin = new Penguin("亚亚", "Q妹");
		Penguin meimeiPenguin = new Penguin("美美", "Q妹");
		Penguin feifeiPenguin = new Penguin("菲菲", "Q妹");

		List penList = new ArrayList();
		penList.add(ououPenguin);
		penList.add(yayaPenguin);
		penList.add(meimeiPenguin);
		penList.add(2, feifeiPenguin); // 添加feifeiPenguin到指定位置

		System.out.println("共计有" + 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());
		}
	
		penList.remove(penList.size()-1);
		penList.remove(feifeiPenguin);
			
		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());
		}
	
		if(penList.contains(meimeiPenguin))
			System.out.println("\n集合中包含美美的信息");
		else
			System.out.println("\n集合中不包含美美的信息");
	}
	
}

练习2


public class Dog {
	private String name; 
	private int health = 100; 
	private int love = 10; 
	private String strain; 

	
	public Dog(String name,String strain) {
		this.name = name;
		this.strain = strain;			
	}

	
	public String getName() {
		return name;
	}
	

	public int getHealth() {
		return health;
	}


	public int getLove() {
		return love;
	}


	public String getStrain() {
		return strain;
	}
}


public class Test2 {
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {

		
		Dog ououDog = new Dog("欧欧", "雪娜瑞");
		Dog yayaDog = new Dog("亚亚", "拉布拉多");
		Dog meimeiDog = new Dog("美美", "雪娜瑞");
		Dog feifeiDog = new Dog("菲菲", "拉布拉多");

	
		Map dogs = new HashMap();
		dogs.put("欧欧", ououDog);
		dogs.put("亚亚", yayaDog);
		dogs.put("美美", meimeiDog);
		dogs.put("菲菲", feifeiDog);

	
		if (dogs.containsKey("欧欧")) {
		
			Dog dog = (Dog) dogs.get("欧欧");
			System.out.println("Map中存在指定对象,对象信息如下:");
			System.out.println(dog.getName() + "\t" + dog.getStrain());
		} else {
			
			System.out.println("Map中不存在该对象。");
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值