记得以前面试的时候碰到过一个面试题,大致是这个意思:有个对象,姑且叫Dog吧,Dog有身高,现在按Dog的身高进行排序
今天突然想起来,其实这个面试题,从表面看靠的是排序,有数据结构的内容,再深点看,是看你有多少经验,这个可以用
接口Comparable或者Comparator来解决,再深一点的层次,是考你的设计模式,这个用到的就是策略模式。对多态的一个很好的理解。
接口
public interface Comparable {
int compareTo(Object o);
}
首先是帮助类
@Override (实现comparable接口,这个comparable是java自带的)
public int compare(Object o1, Object o2) {
int i1 = (Integer)o1;
int i2 = (Integer)o2;
return (i1<i2?-1:(i1==i2?0:1));
}
或者
public static void sort(Object[] objects){
for (int i = objects.length; i > 0; i--) {
for (int j = 0; j < i-1; j++) {
if (((Comparable)objects[j]).compareTo((Comparable)objects[j+1]) == 1) {
swap(objects,j ,j+1);
}
}
}
}
private static void swap(Object[] objects, int i, int j) {
Object temp;
temp = objects[i];
objects[i] = objects[j];
objects[j] = temp;
}
Dog类 重写compareTo方法
@Override
public int compareTo(Object o) {
Dog dog = (Dog) o;
return (this.food < dog.food ?-1:(this.food == dog.food ?
0:1));
}
一点见解,高手指点
分享到:
相关推荐
ActiveX数据对象,是一个应用级程序接口. 75.四种JDBC方式?目前的版本? 76.EJB有哪几种?区别是什么? 77.JavaBean与EJB有什么区别? 78.软件开发生命周期有哪几个阶段? 79.软件开发有哪些因素? 80.软件开发中如何...
│ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科...
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、...
此面试题为本人最近搜集整理,为目前企业面试最会被考到的问题,包括:java基础、多线程、常见排序算法、23种设计模式、堆栈、tomcat和jboss性能优化、JDK新特性、SSH框架、SQL数据库、面向对象设计原则等一系列综合...
面试题15:一个参数可以既是const又是volatile吗 面试题16:一个指针可以是volatile吗 第5章 引用和指针 5.1 引用 面试题1:什么是引用 面试题2:常引用有什么作用 面试题3:流操作符重载为什么返回引用 5.2 指针 ...
Java面试题整理 .............................................................................................................. 9 Java面向对象...............................................................
Java基础方面: 1、作用域public,private,protected,以及不写时的区别...Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert .............
52、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 33 53、线程的基本概念、线程的基本状态以及状态之间的关系 34 54、简述synchronized和java.util.concurrent.locks.Lock...
c面试题 4. static有什么用途?(请至少说明两种) 1.限制变量的作用域 2.设置变量的存储域 7. 引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。...
J2EE高级培训师面试题 时间:120分钟 一,填空题 1) 每个Servlet都必须实现()接口 a) javax.servlet.Servlet; b) javax.servlet.HttpServlet; c) javax.servlet.GenericServlet; d) javax.servlet....
面试题总结 1 高级工程师要技术要求 2 一:java面向对象 3 1:java中常见jar包的作用 3 2:常用的linux命令 3 3:使用jdbc主要代码操作步骤 3 4:选择排序、冒泡排序、插入排序 4 5:将数据保存到文件中,将文件内容...
15. 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 11 16. abstract class和interface有什么区别? 12 17. abstract的method是否可同时是static,是否可同时是native,是否可...
26.您要创建一个ASP.NET应用程序在DataGrid控件中显示一个经过排序的列表。产品数据被存放于一个名为PubBase的Microsoft SQL Server 数据库。每个产品的主键是ProductID,Numeric型并且每个产品有一个字母描述字段,...
或许这份面试题还不足以囊括所有 Java 问题,但有了它,我相信你一定不会“败”的很惨,因为有了它,足以应对目前市面上绝大部分的 Java 面试了,因为这篇文章不论是从深度还是广度上来讲,都已经囊括了非常多的知识...
│ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科...
Java面试题整理 9 Java面向对象 9 1. super()与this()的区别? 9 2. 作用域public,protected,private,以及不写时的区别? 9 3. 编程输出如下图形。 9 4. JAVA的事件委托机制和垃圾回收机制 10 5. 在JAVA中,如何跳出...
│ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科...
4.打乱一个排好序的list对象alist? 数据类型 5.现有字典 d= {'a':24,'g':52,'i':12,'k':33}请按value值进行排序? 6.字典推导式 7.请反转字符串 "aStr"? 8.将字符串 "k:1 |k1:2|k2:3|k3:4",处理成字典 {k:1,k1:2,.....
这是我找工作时搜集和整理的应聘资料,内容包括:各种java排序算法、128道常见Java面试题大汇总、Java面向对象思考题及编程题、自我介绍、面试常见问题精选、职业培训学校准备的Java面试题整理。如果你能把这些都看...