`
yxx676229549
  • 浏览: 72099 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

一个对对象排序的面试题

阅读更多

记得以前面试的时候碰到过一个面试题,大致是这个意思:有个对象,姑且叫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));
	}
 一点见解,高手指点
分享到:
评论

相关推荐

    JAVA面试题最全集

    ActiveX数据对象,是一个应用级程序接口. 75.四种JDBC方式?目前的版本? 76.EJB有哪几种?区别是什么? 77.JavaBean与EJB有什么区别? 78.软件开发生命周期有哪几个阶段? 79.软件开发有哪些因素? 80.软件开发中如何...

    java面试题以及技巧

    │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科...

    java面试题精选

    Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、...

    2011Java新版面试题

    此面试题为本人最近搜集整理,为目前企业面试最会被考到的问题,包括:java基础、多线程、常见排序算法、23种设计模式、堆栈、tomcat和jboss性能优化、JDK新特性、SSH框架、SQL数据库、面向对象设计原则等一系列综合...

    C/C++程序员面试指南.杨国祥(带详细书签).pdf

    面试题15:一个参数可以既是const又是volatile吗 面试题16:一个指针可以是volatile吗 第5章 引用和指针 5.1 引用 面试题1:什么是引用 面试题2:常引用有什么作用 面试题3:流操作符重载为什么返回引用 5.2 指针 ...

    JAVA 综合面试题.doc

    Java面试题整理 .............................................................................................................. 9 Java面向对象...............................................................

    java面试题大全-基础方面

    Java基础方面: 1、作用域public,private,protected,以及不写时的区别...Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert .............

    java面试题大全(2012版)

    52、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 33 53、线程的基本概念、线程的基本状态以及状态之间的关系 34 54、简述synchronized和java.util.concurrent.locks.Lock...

    一些C面试题,希望能对大家有帮助

    c面试题 4. static有什么用途?(请至少说明两种) 1.限制变量的作用域 2.设置变量的存储域 7. 引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。...

    J2EE面试题

    J2EE高级培训师面试题 时间:120分钟 一,填空题 1) 每个Servlet都必须实现()接口 a) javax.servlet.Servlet; b) javax.servlet.HttpServlet; c) javax.servlet.GenericServlet; d) javax.servlet....

    最新java面试题攻略

    面试题总结 1 高级工程师要技术要求 2 一:java面向对象 3 1:java中常见jar包的作用 3 2:常用的linux命令 3 3:使用jdbc主要代码操作步骤 3 4:选择排序、冒泡排序、插入排序 4 5:将数据保存到文件中,将文件内容...

    java面试题

    15. 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 11 16. abstract class和interface有什么区别? 12 17. abstract的method是否可同时是static,是否可同时是native,是否可...

    【。net 专业】 面试题

    26.您要创建一个ASP.NET应用程序在DataGrid控件中显示一个经过排序的列表。产品数据被存放于一个名为PubBase的Microsoft SQL Server 数据库。每个产品的主键是ProductID,Numeric型并且每个产品有一个字母描述字段,...

    Java 最常见 200+ 面试题全解析:面试必备.docx

    或许这份面试题还不足以囊括所有 Java 问题,但有了它,我相信你一定不会“败”的很惨,因为有了它,足以应对目前市面上绝大部分的 Java 面试了,因为这篇文章不论是从深度还是广度上来讲,都已经囊括了非常多的知识...

    java面试题及技巧4

    │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科...

    java面试题(面试 宝典)

    Java面试题整理 9 Java面向对象 9 1. super()与this()的区别? 9 2. 作用域public,protected,private,以及不写时的区别? 9 3. 编程输出如下图形。 9 4. JAVA的事件委托机制和垃圾回收机制 10 5. 在JAVA中,如何跳出...

    java面试题及技巧3

    │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科...

    关于python的面试题

    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最全笔试题面试题

    这是我找工作时搜集和整理的应聘资料,内容包括:各种java排序算法、128道常见Java面试题大汇总、Java面向对象思考题及编程题、自我介绍、面试常见问题精选、职业培训学校准备的Java面试题整理。如果你能把这些都看...

Global site tag (gtag.js) - Google Analytics