`

java list or Set (对象) 排序整理

阅读更多

//java list 排序

//关键词: java    list    排序                                          

//主要用到: Collections.sort方法:

package com.tom.compare;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class CompareClient {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  List list = new ArrayList();
  list.add(new Content(15000,"1asdfasd5000"));
  list.add(new Content(10000,"10000"));
  list.add(new Content(20000,"20000"));
  list.add(new Content(30000,"30000"));
  list.add(new Content(25000,"25000"));
  list.add(new Content(13000,"13000"));
  list.add(new Content(15000,"15000"));  
  list.add(new Content(89000,"89000"));
  
  ContentComparator comp = new ContentComparator(); 

  Collections.sort(list,comp);
  
  Content content;
  for(int i = 0; i < list.size(); i++){
   content = (Content)list.get(i);
   System.out.println(" content.getName() " + content.getName());
  }

 }

}
package com.tom.compare;

import java.util.Comparator;

public class ContentComparator implements Comparator {

 public int compare(Object o1, Object o2) {
  // TODO Auto-generated method stub
  Content c1 = (Content) o1;
  Content c2 = (Content) o2;
  if (c1.getKey() > c2.getKey()) {
   return 1;
  } else {
   if (c1.getKey() == c2.getKey()) {
    return 0;
   } else {
    return -1;
   }
  }
 }
}
package com.tom.compare;

public class Content {

 private long key;

 private String name;

 public Content(long key, String name) {
  this.key = key;
  this.name = name;
 }

 public long getKey() {
  return key;
 }

 public void setKey(long key) {
  this.key = key;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }
}
结果是:

 content.getName() 10000
 content.getName() 13000
 content.getName() 1asdfasd5000
 content.getName() 15000
 content.getName() 20000
 content.getName() 25000
 content.getName() 30000
 content.getName() 89000

 

 

 

===========================Set 排序===============================

TreeSet<Integer> set2 = new TreeSet<Integer>(new Comparator<Integer>() {
   @Override
   public int compare(Integer o1, Integer o2) {
    if (o1 % 2 != 0) {
     if (o2 % 2 != 0) {
      return o2.compareTo(o1);
     }
     return -1;
    }
    if (o2 % 2 != 0) {
     return 1;
    }
    return o2.compareTo(o1);
   }
  });

这个网址有详细说明:http://www.blogjava.net/shingo/archive/2009/03/31/263190.html

分享到:
评论

相关推荐

    Java对象排序、中文排序、SortedSet排序使用和源码讲解

    在Java中,对象排序主要是通过对象实现`Comparable`接口或者使用自定义的`Comparator`来完成的。 1. **对象排序**: 当对象需要进行排序时,它应该实现`Comparable`接口。`Comparable`接口有一个`compareTo()`方法...

    Java面试测试题目2018张大成总结

    - **List**和**Set**继承自`Collection`接口。 - **Map**不是`Collection`接口的子接口,它有自己的体系结构。 #### 17. Strings=newString("xyz");创建了几个StringObject? - 创建了一个`String`对象。 #### 18. ...

    Java企业级开发综合技能知识总结

    #### Java面向对象 1. **super()与this()的区别?** - `super()`用于调用父类构造器,必须作为子类构造器的第一条语句出现。 - `this()`用于调用本类的其他构造器,也必须作为构造器的第一条语句出现。 2. **...

    Java常用类及集合操作

    - `sort(List&lt;T&gt; list)`:对列表进行排序。 - `reverse(List&lt;T&gt; list)`:反转列表顺序。 - **查找**: - `max(Collection&lt;? extends T&gt; coll)`:查找最大值。 - `min(Collection&lt;? extends T&gt; coll)`:查找...

    华为OD机试C卷- 字符串排序(Java & JS & Python).md-私信看全套OD代码及解析

    ### 华为OD机试C卷- 字符串排序(Java & JS & Python) #### 题目背景 本题目来源于华为OD机试C卷,主要考察应聘者对字符串操作和排序算法的理解与应用能力。题目要求根据特定的排序规则对一系列单词进行排序,并...

    整合了所有java经典面试题

    - 常见排序方法有冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序等。 - **快速排序示例**: ```java public static void quickSort(int[] arr, int low, int ...

    GreenDao增 删 改 查

    通过GreenDao,开发者可以将Java对象直接映射到数据库表,实现数据的增删改查功能,避免了手动编写SQL语句的繁琐过程。 1. **增(Insert)**: 在GreenDao中,添加数据到数据库非常直观。首先,你需要创建一个对应...

    最全的java面试题

    #### 一、Java面向对象基础 ##### 1. `super()`与`this()`的区别? - **`super()`**:用于调用父类的构造方法或者父类中的成员方法。它必须是子类构造方法的第一条语句。 - **`this()`**:用于调用本类中的其他...

    java 面试题50道(含参考答案)

    - Collection 是所有集合框架接口的超接口,如 Set 和 List。 - Collections 是工具类,提供了一系列静态方法用于集合操作,如排序、查找、线程安全化等。 6. **字符串对象的创建**: - `new String("xyz")` 会...

    java常见笔试题目总结

    用JAVA实现一个快速排序? - **排序方法**:冒泡排序、插入排序、选择排序、快速排序、归并排序等。 - **快速排序**: ```java public static void quickSort(int[] arr, int low, int high) { if (arr == null ||...

    java面试题

    答:JDO是java对象持久化的新的规范,为java data object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。 CORBA? 答:CORBA标准是公共对象请求代理结构,用途为:用不同的程序设计语言书写,在不同的...

    java web中的oracle存储过程

    ### 一、查询数据(返回List集合) #### 存储过程定义 首先,我们需要在Oracle数据库中创建一个存储过程`getAreas`,该过程用于查询`areas`表中的所有数据,并按`id`排序。 ```sql CREATE OR REPLACE PROCEDURE ...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    以前写了一个java的正规表达式的java工具类,分享一下,有用到的欢迎下载使用。 如果你有常用的定义好的,且测试通过的正规表达式,欢迎跟贴,也让我享用一下 . 类中用到了 jakarta-oro-2.0.jar 包,请大家自己在 ...

    mybatis-plus QueryWrapper条件查询器

    在这个例子中,我们首先创建了一个User对象,然后使用这个对象创建QueryWrapper实例。接着,通过调用eq(等于)、ge(大于等于)等方法设置查询条件,最后执行`selectList`方法获取满足条件的用户列表。 Query...

    jedis-jedis-1.3.0.tar.gz

    - Sorted Set:除了集合操作外,还支持按分数排序。 - Hash:用于存储键值对,可进行添加、更新、删除等操作。 2. 事务处理: - Jedis 支持批处理命令,允许用户在一个事务中执行多条命令,保证原子性。 3. ...

    ormlite数据库的简单应用

    ORMLite提供了丰富的查询条件,如`where()`用于构建WHERE子句,`and()`, `or()`用于组合条件,`orderBy()`指定排序方式。例如: ```java List&lt;User&gt; users = dbHelper.getUserDao().queryBuilder() .where().eq(...

    hibernate_first6项目源码

    使用`setOrder(Order order)`或`addOrder(Order order)`方法可以指定查询结果的排序方式。例如,按年龄降序排列: ```java criteria.addOrder(Order.desc("age")); ``` 投影(Projection)允许我们选择返回...

Global site tag (gtag.js) - Google Analytics