Java编程【2】 -getFlyAnimal() ->accept an animal list,and return an animal list which contains only anim
2015-09-27 19:43
609 查看
今天是中秋节,不仅没有啥可喜的事儿,反而自己把自己搞的感冒了,现在有点病怏怏的感觉。本来计划纯粹睡一天的,但是考虑到晚上可能会睡不着我就来实验室看看电影~~既然左右无事就继续把没写完的东西写完~~开始技术!
下面是上次给出的练习:
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即可实现。
代码如下:
还有最后一个函数orderAnimal(),根据Name将Animal排序,如果只是简单的将Names排序,数组里有Arrays.sort(judgeNames); 即可将Names由低到高的排序,但这里同时需要将Animal类型排序。所以解决方法就是根据名字比较,但是是将Animals类排序。代码如下:
下面是上次给出的练习:
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; }
相关文章推荐
- JAVA基础学习(十八)--常用 工具类
- 精选30道Java笔试题
- java inetAddress类,URL类
- Java学习目录(初级篇)
- java排列
- java 集合介绍
- Java虚拟机8:虚拟机性能监控与故障处理工具
- eclipse导入web项目之后会报一大堆错误
- Java 大数值
- 顺序表(ArrayList)java实现
- 浅谈关于Java的注解使用
- Java Web开发1___JSP指令元素:taglib指令
- java 编译版本 和 Project 编译版本不一致
- 队列(链式存储) java实现
- Spring IOC, DI, AOP 原理和实现
- 队列(顺序存储) java实现
- Java学习之路:ArrayList用法
- 栈(顺序+链式) java实现
- eclipse ide中folder、source folder、package 区别
- java环境变量——classpath、path、JAVA_HOME的作用