- 浏览: 625908 次
文章分类
最新评论
-
q781253433:
qin ~.求demo看看~
Android之Widget -
zhongyuanceshi:
博主,没看到你的例子的Demo,共享下
Android之Widget
public class Duck implements Comparable {
//实现了comparable接口的对象可以使用Arrays.sort(object[])或者Collections.sort(list)进行排序;
private String name;
private int weight;
@Override
public int compareTo(Object o) { // a.comparableTo(b) 与0比较
Duck oDuck = (Duck) o;
if(this.weight > oDuck.weight){
return 1;
}else if(this.weight < oDuck.weight){
return -1;
}else {
return 0;
}
}
public Duck(String name, int weight) {
super();
this.name = name;
this.weight = weight;
}
@Override
public String toString() {
return name + "\tweight : " + weight;
}
}
测试:
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
public class MainTest {
public static void main(String[] args) {
int numDuck = 3;
Duck duck[] = new Duck[3];
duck[0] = new Duck("duck1", 25);
duck[1] = new Duck("duck2", 23);
duck[2] = new Duck("duck3", 24);
// Arrays.sort(duck); //排序1
ArrayList<Duck> list = new ArrayList<Duck>(); //排序2
for (int i = 0; i < 3; i++) {
list.add(duck[i]);
}
Collections.sort(list);
for (int i = 0; i < 3; i++) {
System.out.println(list.get(i));
}
}
}
总结:接口comparable中使用了模板方法模式,在子类中我们只需要实现comparableTo() 方法定义排序的语法规则即可,至于具体的排序算法都由
模板方法(sort())来实现。 ====模板方法模式
发表评论
-
System.out.printf输出格式
2012-12-13 22:01 2527// 定义一些变量,用来格式化输出。 double ... -
android分享功能的实现(分享到微博空间等)
2012-11-03 22:15 2210//Intent intent = new Inten ... -
Android开发环境配置
2012-11-03 20:04 8821、JDK安装: http://jing ... -
java,c,c++ 语言之间基本数据类型的比较
2012-08-24 14:31 1265原文:http://eric-gcm.iteye. ... -
堆栈&内存基础知识
2012-08-23 16:34 1443为了理解什么是堆栈缓 ... -
JAVA和C++的区别(转)
2012-08-23 13:45 914这是Java与C++区别的一个比较完整的答案,大家可以学习 ... -
java关键字null
2012-02-16 09:44 2147一、null是代表不确定的对象 Java中,n ... -
烽火学习笔记1
2012-02-15 22:17 1470Date 0808 Android 开发 ... -
notify notifyall wait 方法的使用
2012-02-14 14:14 961// object类的notify(),notify ... -
equals() 与 == 区别
2012-02-14 13:43 1114equals() 用来比较两个对象是否相等,即两个对象的内容是 ... -
OO原则:
2012-01-19 14:14 8721 封装变化 2 多用组合,少用继承 ... -
System 获取系统数据
2011-12-31 15:36 917System.out.println(System.get ... -
eclipse J2me环境配置
2011-12-09 16:39 3320用eclipse开发手机软件,尤其是J2me开发的时候,可以用 ... -
ps基础知识1--dpi ppi 认识
2011-11-17 14:15 291PPI与DPI区别: PPI(Pixel Per Inc ... -
操作系统学习1
2011-11-15 20:40 1065我们用一组简单的数学公式来描述操作系统的组成要素: ... -
Java虚拟机原理、内存分配和回收机制
2011-11-15 15:03 2938通常情况下Java编译过的代码是一些class ... -
程序员成长中的九重境界 你属于哪一重?
2011-10-29 10:02 767摘自:http://fellow.51ct ... -
json与xml比较
2011-10-27 17:14 1578JavaScript学习网站: http://www.c ... -
static 用法小结
2011-10-24 14:42 925用static修饰的类成员独立于任何类的对象,可以在实 ... -
单例模式
2011-10-11 13:51 930java 单例模式的好处 单例模式分三种:懒汉式单例、饿汉式 ...
相关推荐
实现此接口的对象列表(和数组)可以通过 Collections.sort (和 Arrays.sort )进行自动排序。实现此接口的对象可以用作有序映射表中的键或有序集合中的元素,无需指定比较器。 强烈推荐(虽然不是必需的)使自然...
如果HashMap的键类实现了Comparable接口,那么在进行某些操作,如流式操作(Stream API)的排序时,HashMap会自动使用这个比较规则。 例如,假设我们有一个Person类,它包含一个年龄字段并实现了Comparable接口: ...
此外,通过Java的工具类`Collections`和`Arrays`,可以对实现了Comparable接口的对象列表或数组进行自动排序,如使用`Collections.sort()`和`Arrays.sort()`方法。 在Java中,一些预定义的类,如`Integer`、`Double...
当一个类实现了`Comparable`接口后,其对象可以在使用了`Comparator`接口的集合类(如`TreeSet`或`TreeMap`)中自动进行自然排序。这意味着集合中的对象会按照`compareTo`方法定义的顺序进行排列。 **自定义类与...
当我们在`TreeSet`中存储自定义类型的对象时,若想让`TreeSet`自动按照我们的需求排序,就需要让这些对象所属的类实现`Comparable`接口。具体实现方式是在类中重写`compareTo()`方法,根据业务逻辑定义比较规则。...
- 自动排序:实现了Comparable接口的类的对象可以直接使用Collections.sort()或Arrays.sort()进行排序,而不需要额外的Comparator。 - 比较规则:Comparable接口定义的是类的自然排序,而Comparator提供更灵活的比较...
实现此接口后,对象可以根据其实现的`compareTo`方法自动排序。 - **Comparator**提供了更大的灵活性,可以在不修改对象的情况下根据不同的标准对其进行排序。它通常用于自定义排序或需要多种排序方式的场景。 理解...
当我们自定义一个类并希望它在集合(如List)中能自动排序时,就需要实现Comparable接口。通过重写`compareTo()`方法,我们可以设定对象按照哪种规则进行排序。默认的自然顺序排序就是通过`compareTo()`方法定义的。...
Comparable接口是Java中用于对象排序的关键接口,主要应用于需要自动排序的场景。当一个类实现了Comparable接口,意味着该类的对象具备内在的比较逻辑,可以直接进行比较。例如,我们可以创建一个Person类,让它实现...
当你创建一个类并希望其对象能够在集合如`ArrayList`或`TreeSet`中自动排序时,只需让该类实现`Comparable`接口。例如,如果你有一个`Person`类,你可以这样实现: ```java public class Person implements ...
要实现Java对象的排序,我们需要让这些对象的类实现Comparable接口或者提供Comparator。对于中文排序,我们主要关注的是字符串的比较,因为中文字符的排序规则不同于英文。在Java中,字符串的比较默认基于Unicode...
当你有一个自定义类型的数据类,并且希望在集合(如ArrayList、LinkedList或TreeSet等)中进行自然排序时,你需要让这个类实现`Comparable`接口。`compareTo()`方法用于比较当前对象与传入的对象,返回值决定了排序...
这使得TreeMap的元素总是按特定顺序排列,可以是自然排序(键的Comparable接口实现)或自定义排序(通过Comparator提供)。查找、插入和删除的速度稍慢于HashMap,但提供了有序性。 3. LinkedHashMap:...
使用 ActionListener 接口实现对象对动作事件的监听 ActionListener 接口是一个接口,它只有一个抽象方法 `actionPerformed`,这个方法用于响应用户动作。ActionListener 接口可以被多个类实现,每个类可以实现多个...
1. **Comparable接口**: Java中的`Comparable`接口定义了`compareTo()`方法,用于比较对象的顺序。当我们需要对一个类的对象进行自然排序时,可以实现这个接口。例如,在`User`类中,如果我们有一个`age`属性,...
- **Comparable接口**:所有实现了`Comparable`接口的类都可以进行比较。这个接口定义了一个`compareTo()`方法,用于比较当前对象与其他对象的大小。例如,`String`、`Integer`等类都默认实现了`Comparable`接口,...
首先,Java中的对象排序主要涉及到两个核心概念:Comparable接口和Comparator接口。当需要对一个类的对象进行排序时,有两种基本策略: 1. **实现Comparable接口**: - 如果一个类的对象需要被排序,那么这个类...
在Java中,对于实现Comparable接口的类,对象会自动支持自然排序。比如,Integer类就实现了Comparable接口,它的compareTo()方法会根据数值大小进行比较。所以,当你向TreeSet添加Integer对象时,TreeSet会调用这些...
本次我们关注的是Java集合框架中的三类接口:List、Set和Map,以及如何实现它们的特定功能,特别是关于`TreeSet`和`TreeMap`的按值排序。标题中提到的“JCF(List、Set、Map)学习,实现了,value>按value排序”是一个...
Map中的键通常是可比较的,实现了Comparable接口的类的实例可以作为键,这样Map可以根据键的自然顺序进行排序。例如,使用TreeMap时,如果不提供Comparator,键将按照其天然顺序排序。 **5. 集合排序** Java集合...