Java编程【2】 -getFlyAnimal() ->accept an animal list,and return an animal list which contains only anim

本文详细阐述了如何实现一个动物动物园管理系统的部分功能,包括获取随机动物列表、筛选飞行动物和按名称排序动物。通过具体代码实例,展示了如何使用Java语言处理不同类型的动物对象,实现高效的动物管理。

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

      今天是中秋节,不仅没有啥可喜的事儿,反而自己把自己搞的感冒了,现在有点病怏怏的感觉。本来计划纯粹睡一天的,但是考虑到晚上可能会睡不着我就来实验室看看电影~~既然左右无事就继续把没写完的东西写完~~开始技术!

       下面是上次给出的练习:

1.Define an interface called IAnimal,it has following behavior -talk(); -walk(); -fly(); each animal will also have a Name property.

2.Implement 3 classes named Tiger,Bird,Duck,all implement IAnimal.

3.Implement a class called Zoo, it sha following behavior 

   - getTenAnimal() ->return 10 animals filled radndomly 3 kinds of animals 

   -getFlyAnimal() ->accept an animal list,and return an animal list which contains only animals can fly(like bird)

   -orderAnimal() ->accept an animal,and return animals in name order.

记忆力没错的话,我已经将1.2.实现,3中的第一个函数getTenAnimals()也已经写出,现在接着写第二个函数。

第二个函数就是要实现接受一个animal list ,返回属于bird的animal list。那么利用list中的class.equal即可实现。

代码如下:

public List<Bird> getFlyAnimals(List<IAnimal> list)throws NullPointerException{
	 	 
	 List<Bird> birds = new ArrayList<Bird>();	
	 for (int i = 0; i < list.size(); i++) {
		if( list.get(i).getClass().equals(Bird.class)){
			 birds.add((Bird)list.get(i));
			// System.out.println(list.get(i).getClass().getName());
		 }
	}	 
	return birds;	 
 }

还有最后一个函数orderAnimal(),根据Name将Animal排序,如果只是简单的将Names排序,数组里有Arrays.sort(judgeNames); 即可将Names由低到高的排序,但这里同时需要将Animal类型排序。所以解决方法就是根据名字比较,但是是将Animals类排序。代码如下:

public  List<IAnimal> orderAnimals(List<IAnimal> list){
	 ArrayList<String> arrayList = new ArrayList<String>();
	 
	 System.out.println("接受到的名字:");
	for(int i=0;i<list.size();i++){
	 String naString;
	 if( list.get(i).getClass().equals(Bird.class)){
		 Bird bird=(Bird)list.get(i);
		 naString=bird.getName();
	 }else if(list.get(i).getClass().equals(Duck.class)){
		 Duck duck=(Duck)list.get(i);
		 naString =duck.getName();
	 }else{
		 Tiger tiger=(Tiger)list.get(i);
		 naString=tiger.getName();
	 }
	 arrayList.add(naString);
	 
	 System.out.println(arrayList.get(i));  //打印出接收到的animal名字
	}
	 for(int i=0;i<arrayList.size()-1;i++){   //开始排序
		 for(int j=i+1;j<arrayList.size();j++){
			 String temp="";
			if(arrayList.get(i).compareTo(arrayList.get(j) ) >=0 ){
				IAnimal animal= list.get(i);
				IAnimal animal2=list.get(j);
				list.set(j, animal);
				list.set(i, animal2);
				temp=arrayList.get(j);
				arrayList.set(j, arrayList.get(i));
				arrayList.set(i, temp);
			}
			 
		 }
	 }
	 System.out.println("排序后的结果:");
	 for(int i=0;i<arrayList.size();i++){
		 System.out.println(arrayList.get(i));  //输出排序后的结果
	 }
	 
	 return list;
	 
 }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值