`

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);
   }
  });

 

分享到:
评论

相关推荐

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

    Java中的排序机制主要依赖于内置的排序函数,如`Collections.sort()`和`Arrays.sort()`,它们简化了编程过程,避免了直接操作底层数据结构。在Java中,对象排序主要是通过对象实现`Comparable`接口或者使用自定义的`...

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

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

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

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

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

    13. **用JAVA实现一种排序,JAVA类实现序列化的方法(二种)?** - 排序方法参见上文快速排序示例。 - 序列化实现方法:实现`Serializable`接口或实现`Externalizable`接口。 14. **如在COLLECTION框架中,实现比较...

    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)`:查找...

    最全的java面试题

    用JAVA实现一个快速排序? - 常见排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序等。 - **快速排序**示例: ```java public class QuickSort { public static void quickSort(int[] arr, int low,...

    java web中的oracle存储过程

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

    GreenDao增 删 改 查

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

    整合了所有java经典面试题

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

    java常见笔试题目总结

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

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

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

    java 实效编程百例

    - **10.3 单列集合 Collection 接口、List 接口、Set 接口、集合工具类 Collections** - 各种集合类的特性和使用方法。 - **10.4 键值双列集合 Map** - Map 接口的实现类及使用场景。 - **10.5 泛型高级应用** - ...

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

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

    java面试题

    list、set、map问题? 答:set 不允许重复,无序 list 允许重复,有序 map 成对的数据结构,键值必须具有唯一性 Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式允许...

    mybatis-plus QueryWrapper条件查询器

    在实际开发中,QueryWrapper的灵活性和易用性使得它可以广泛应用于各种场景,如数据检索、分页查询、排序等。配合Spring Boot的自动配置和依赖注入特性,可以快速地集成到项目中,提升开发效率。 除了QueryWrapper...

    jedis-jedis-1.3.0.tar.gz

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

    java ee应用技术知识要点.doc

    Java EE应用技术主要涵盖Web应用开发的多个方面...必填校验器是`required`,国际化资源文件通常以`.properties`为后缀,`iterator`标签可以迭代各种集合,包括List、Set和数组。防止表单重复提交通常使用`token`标签。

    海量数据处理面试题.pdf

    面试者还应该熟悉STL(标准模板库)中的容器,如vector、list、deque、stack、queue、heap等序列式容器,以及set、map、multiset、multimap等关联式容器。了解这些容器在海量数据处理中的应用,例如,map通常由红黑...

    ormlite数据库的简单应用

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

Global site tag (gtag.js) - Google Analytics