`
only_java
  • 浏览: 112680 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Collections.sort对中文的排序

阅读更多
package lession;

import java.io.UnsupportedEncodingException;
import java.text.Collator;
import java.util.Comparator;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;

class User {
 String name;
 int age;
 
 public User(String name,int age){
  this.name=name;
  this.age=age;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 } 
}

class ComparatorUser implements Comparator{
 Collator collator = Collator.getInstance(java.util.Locale.CHINA);
 public int compare(Object arg0, Object arg1) {
  User user0=(User)arg0;
  User user1=(User)arg1;
  String name0=toUTF_8(user0.getName());
  String name1=toUTF_8(user1.getName());
  int age0=user0.getAge();
  int age1=user1.getAge();
  //先比较名字再比较年龄
  int flag=collator.getCollationKey(name0).compareTo(collator.getCollationKey(name1));
  if(flag==0){
   return Integer.valueOf(age0).compareTo(Integer.valueOf(age1));
  }else{
   return flag;
  }  
 }
 private static String toUTF_8(String str) {
     try {
         return new String(str.getBytes(), "ISO-8859-1");
     } catch (UnsupportedEncodingException e) {
         e.printStackTrace();
         throw new RuntimeException(e);
     }
 }
}

public class SortTest {

 
 public static void main(String[] args){
  List userlist=new ArrayList();
  userlist.add(new User("吉斌",4));
  userlist.add(new User("何佳",1));
  userlist.add(new User("张哲",5));
  userlist.add(new User("段建波",6));  
  userlist.add(new User("邓斯奇",5));
  userlist.add(new User("邓斯奇",3));
  
  ComparatorUser comparator=new ComparatorUser();
  Collections.sort(userlist, comparator);
   
  for (int i=0;i<userlist.size();i++){
   User user_temp=(User)userlist.get(i);
      System.out.println(user_temp.getName()+","+user_temp.getAge()); 
  }
  
 }
}



上面的程序实现了,对中文的排序。

默认是根据字符串的ASCII/Unicode的编码排序的,若想按照汉字的拼音排序,需要把字符串转换编码为iso-8859-1.

如果你的文本是本地语言,而不是缺省语言,你需要传递一个本地语种给getInstance()方法


分享到:
评论

相关推荐

    java List 排序 Collections.sort

    当我们需要对List中的元素进行排序时,`Collections.sort()`方法就派上了用场。这个方法能够根据元素的自然顺序或者自定义的比较器进行排序。本文将深入探讨`Collections.sort()`的使用、原理以及如何自定义排序规则...

    java中Collections.sort排序详解

    Java中的Collections.sort排序是Java.util.Collections类中的一个静态方法,用于对列表进行排序。下面将详细介绍Collections.sort排序的使用和实现机制。 Collections.sort()方法的使用: Collections.sort()方法...

    Java Arrays.sort和Collections.sort排序实现原理解析

    Java中的`Arrays.sort()`和`Collections.sort()`是两个常用的排序函数,它们分别用于对数组和集合进行排序。这两个函数在内部实现上有所不同,但都基于高效的排序算法。 首先,`Collections.sort()`方法在处理列表...

    Java Collections.sort()排序代码案例

    Java Collections.sort() 排序代码案例是 Java Collections 框架中一个非常重要的排序算法,通过本文,我们将深入探讨 Java Collections.sort() 排序代码案例的实现细节,并对其进行详细的解释。 Java Collections...

    Java Collections.sort()实现List排序的默认方法和自定义方法

    Java Collections.sort()是Java语言中用于对List进行排序的方法,通过使用这个方法可以对List进行默认排序,也可以根据需要实现自定义的排序规则。 默认排序方法 在Java中,Collections.sort()方法可以对List进行...

    java中Collections.sort排序函数用法详解

    在Java编程语言中,`Collections.sort()` 是一个非常重要的函数,它用于对集合中的元素进行排序。这个函数是 `java.util.Collections` 类的一个静态方法,适用于列表(List)类型的集合。`Collections.sort()` 可以...

    JAVA对list集合进行排序Collections.sort()

    在Java编程语言中,`Collections.sort()` 方法是一个非常重要的工具,用于对List接口实现的集合进行排序。这个方法使得开发者能够方便地按照指定的顺序排列集合中的元素。本篇文章将详细探讨如何使用 `Collections....

    详解Java中Collections.sort排序

    在Java编程语言中,`Collections.sort()`方法是一个非常重要的工具,它用于对集合中的元素进行排序。这个方法主要应用于`List`接口的实现类,如`ArrayList`和`LinkedList`等。`Collections.sort()`有两种主要的排序...

    用Java集合中的Collections.sort方法如何对list排序(两种方法)

    在Java编程中,集合框架是处理数据的重要工具,而Collections.sort方法则是对列表(List)进行排序的关键函数。本文将深入探讨两种使用Collections.sort方法对List排序的方法。 首先,第一种方法是让List中的对象实现...

    详解java Collections.sort的两种用法

    Java Collections.sort 是 Java 集合框架中的一种静态方法,用于对 List 类型进行排序。该方法有两种参数形式,分别是对基本类型和自定义类的排序。在本文中,我们将通过示例代码来详细介绍这两种用法。 基本类型的...

    JAVA中Collections工具类sort()排序方法

    在Java编程中,Collections工具类提供了许多方便的集合操作,其中`sort()`方法是一个非常重要的功能,用于对List类型的集合进行排序。本文将详细介绍`Collections.sort()`方法的两种使用方式及其示例。 ### 一、...

    listview按序排列显示

    在这个场景下,我们使用`Collections.sort()`函数对一个包含Map对象的List进行排序,然后将排序后的数据适配到ListView中。以下是关于这个主题的详细解释。 **一、Map与List的关系** 在Java中,Map是一种键值对的...

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

    本文将深入探讨如何使用 `Collections` 类对 List 进行排序操作。 首先,让我们了解 `List` 排序的基本概念。在 Java 中,`List` 是接口,它继承了 `Collection` 接口,并添加了顺序相关的操作。常见的 `List` 实现...

    金陵科技学院软件院大二上Java高级1215Collections.docx

    在示例中,`Collections.sort(list)`按照默认的自然顺序对元素进行排序,使得`list`变为"123", "123", "aaa", "abc", "xyz"。 3. **`Collections.shuffle(List&lt;T&gt; list, Random rnd)`**:这个方法将列表中的元素...

    Collections

    * `Collections.sort(List&lt;T&gt; list)`: 对列表进行自然排序。 * `Collections.sort(List&lt;T&gt; list, Comparator&lt;? super T&gt; c)`: 对列表进行自定义排序。 线程安全操作 Collections 中的线程安全操作方法包括同步和不...

    Java Collections.pdf

    例如,Collections.sort()方法可以对List进行排序,而Collections.synchronizedXXX()方法则可以帮助我们创建线程安全的集合。 在实际开发中,选择合适的集合类型和方法至关重要。例如,当我们需要保持元素插入顺序...

    Collections集合工具类排序.docx

    首先,`sort(List&lt;T&gt; list)`方法是Collections工具类中最常用的排序方法之一,它根据列表中元素的自然排序(natural ordering)来对列表进行排序。自然排序是指列表中的元素必须实现Comparable接口,该接口定义了一...

    arrayList排序

    `Collections.sort()`是一个通用的方法,可以对List接口的实现类进行排序。在使用这个方法前,确保ArrayList中的元素类型实现了Comparable接口,这样默认按照自然顺序排序;或者提供一个Comparator来定义自定义的...

    java集合某个字段按照中文拼音排序.docx

    对Java集合中的某个字段按照中文拼音排序可以使用多种方法,本文将介绍两种常见的方法。 方法一:使用Comparable接口 在Java中,我们可以使用Comparable接口来实现自定义排序。例如,我们可以创建一个Record类,...

    java日期排序.docx

    Collections.sort 方法可以对 List 对象中的元素进行排序,包括日期字符串。 示例代码 下面是一个使用 Java 进行日期排序的示例代码: import java.util.ArrayList; import java.util.Collections; import java....

Global site tag (gtag.js) - Google Analytics