`
javacto
  • 浏览: 84109 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

List && Comparable

阅读更多
package com.testlist;
import java.util.* ;
import java.lang.Comparable ;
public class ListName {
	public static void main(String args[]) {
		List list = new ArrayList() ;
		list.add(new User("刘一",3800)) ;
		list.add(new User("赵二",2500)) ;
		list.add(new User("张四",4000)) ;
		list.add(new User("李四",5000)) ;
		list.add(new User("王五",1000)) ;
		list.add(new User("张三",4000)) ;
		list.add(new User("a四",4000)) ;
		Collections.sort(list) ;
		for(Object o: list) {
			System.out.println(o ) ;
		}
	}

}
class User implements Comparable {
	private String name ;
	private int salary  ;
	User(){}
	public User(String name, int salary) {
		this.name = name ;
		this.salary = salary ;
	}
	public int compareTo(Object obj) {
//		if (obj instanceof User) { //仅按钱数比较
//			User user = (User) obj;
//			return user.salary - this.salary;
//		} else
//			return -1 ;
		
		//当钱数相等时 ,按姓名比较
		User user = (User) obj ;
		int result = user.salary-this.salary ;
		return (result != 0 ? result: name.compareTo(user.name)) ;
	}
	public String toString() {
		return name + "   " + salary ;
	}
}

console:
 李四   5000
a四   4000
张三   4000
张四   4000
刘一   3800
赵二   2500
王五   1000
分享到:
评论

相关推荐

    java中Comparable和Comparator的区别

    在Java编程语言中,Comparable和Comparator接口是两个重要的概念,它们都用于对象的排序,但有着不同的使用场景和特点。本文将深入探讨这两个接口的区别,以及它们在实际开发中的应用。 首先,我们来了解一下...

    java排序Comparator和Comparable

    在Java编程语言中,排序是数据处理中一个非常常见的需求,而`Comparator`和`Comparable`接口则是实现排序的关键工具。这两个接口都是用于比较对象,但它们的应用场景和使用方式有所不同。 首先,`Comparable`接口是...

    comparable和compartor区别

    ### Java中的Comparable与Comparator详解 #### 一、引言 在Java编程中,当我们需要对对象进行排序时,经常会用到两种方式:一种是通过实现`Comparable`接口,另一种则是通过实现`Comparator`接口。这两种方式各有...

    JAVA集合的使用(List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类、equals、hashCode)

    要注意的是List,Set,Queue继承了Collection接口,...这里想用一个简单的例子展示一下他们的使用,内容包括:List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类,泛型、重写equals、hashCode

    Comparable与Comparator的区别

    当我们自定义一个类并希望它在集合(如List)中能自动排序时,就需要实现Comparable接口。通过重写`compareTo()`方法,我们可以设定对象按照哪种规则进行排序。默认的自然顺序排序就是通过`compareTo()`方法定义的。...

    java 使用Collections类对List的排序操作

    1. **自然排序**:如果 `List` 中的元素是实现了 `Comparable` 接口的对象,那么可以使用 `Collections.sort()` 方法进行自然排序。`Comparable` 接口定义了一个 `compareTo()` 方法,该方法用于比较对象之间的大小...

    java List中对象多属性排序及各属性排序设置

    public static <T> void sort(List<T> list, Function, Comparable>... comparators) { if (comparators == null || comparators.length == 0) { throw new IllegalArgumentException("At least one comparator ...

    java实现别踩白块儿源码-SortedList:用Java编写的SortedList的实现。可以与实现Comparable接口的对象一起使用

    当且仅当要使用的对象实现Comparable接口时,我们也可以创建不带Comparator对象的SortedList。 用法 我们将像创建Java中的任何ArrayList一样创建SortedList: SortedList sortedlist = new SortedList(comparator); ...

    java List 排序 Collections.sort

    在Java编程中,`List`接口是集合框架的重要组成部分,提供了有序的元素存储。当我们需要对List中的元素进行排序时,`Collections.sort()`方法就派上了用场。这个方法能够根据元素的自然顺序或者自定义的比较器进行...

    Java8HashMap键与Comparable接口编程开

    这里我们将深入探讨Java 8 HashMap如何与Comparable接口结合使用,以及这背后的编程技术和设计原理。 首先,我们了解下Comparable接口。Comparable接口是Java中用于定义对象之间自然顺序的接口,它只有一个方法`...

    List对象排序通用方法

    ### List对象排序通用方法 #### 一、背景与需求 在进行软件开发的过程中,经常会遇到从数据库中查询出一系列的数据并存储为`List`对象的情况。这些数据在后续的处理中可能需要根据不同的字段进行排序。传统的做法...

    java 实现Comparable接口排序,升序、降序、倒叙

    Java 实现 Comparable 接口排序,升序、降序、倒叙 Java 中的 Comparable 接口是一个非常重要的接口,它提供了一种排序的机制,允许开发者自定义对象的排序规则。在 Java 中,实现 Comparable 接口的类可以使用 ...

    java基础--list(ArrayList、LinkedList、匿名类).docx

    - **通过Comparable接口**:如果List中的元素类型实现了Comparable接口,可以直接使用`Collections.sort()`进行排序。如示例中的`PeopleBean`类: ```java List<PeopleBean> peopleList = new ArrayList(); // ...

    Android里List时间升序排序

    在我们的例子中,`String`类已经实现了`Comparable<String>`接口,因此我们可以直接对`List<String>`进行排序。然而,`Collections.sort()`是基于字符串的自然顺序进行排序,即按照Unicode字符的编码顺序比较字符串...

    List 对象属性排序

    传统的方法是在每个实体类中重写`Comparable`接口或提供比较器(`Comparator`),这不仅增加了代码量,而且降低了代码的可维护性和复用性。为了解决这一问题,可以设计一个通用的工具类来实现基于对象属性的排序功能...

    10个Java经典的List面试题!.zip

    - Collections.sort(List<T> list)可以对List接口的实现类进行排序,对于自定义类型,需要实现Comparable接口或提供Comparator。此外,Collections还有其他实用方法,如binarySearch()、reverse()等。 这些面试题...

Global site tag (gtag.js) - Google Analytics