「java排序工具」java集合排序工具类

博主:adminadmin 2023-01-06 07:42:10 838

本篇文章给大家谈谈java排序工具,以及java集合排序工具类对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java中如何实现中文排序

public class SortByChinese {

//测试

    public static void main(String[] args) {

        String[] a1 = {"保定","何子安","于小云","刘帝","刘何保定子安","刘","刘娜","家强","刘博"}; 

        getSortOfChinese(a1);

        for (int i = 0; i  a1.length; i++) {

            System.out.println(a1[i]);

        }

    }

/**

 * 

 * @param a String[]

 * @return String[]

 */

    public static String[] getSortOfChinese(String[] a) {

        // Collator 类是用来执行区分语言环境这里使用CHINA

        Comparator cmp = Collator.getInstance(java.util.Locale.CHINA);

        // JDKz自带对数组进行排序。

        Arrays.sort(a, cmp);

        return a;

    }

}public class SortByChinese {

//测试

    public static void main(String[] args) {

        String[] a1 = {"小二","张三","李四","王五","刘七"}; 

        getSortOfChinese(a1);

        for (int i = 0; i  a1.length; i++) {

            System.out.println(a1[i]);

        }

    }

/**

 * 

 * @param a String[]

 * @return String[]

 */

    public static String[] getSortOfChinese(String[] a) {

        // Collator 类是用来执行区分语言环境这里使用CHINA

        Comparator cmp = Collator.getInstance(java.util.Locale.CHINA);

        // Arrays工具类对数组进行排序。

        Arrays.sort(a, cmp);

        return a;

    }

}

试试对你的问题是否有用

JAVA通过数组按首字母排序怎么做?

自己封装的一个工具类,可以将汉字按照拼音的首字母排序,支持对Model和字典排序.只能对首字母排序,不支持第二个字母, 实现的原理就是创建一个A-Z的数组,数组中的元素是字典,字典中有两个元素,一个是title,就是当前的首字母 A-Z中的一个,另一个是保存当前title对应的元素的数组,对传入的数组进行遍历获得数组中的一个元素,如果是Model或者字典通过传入的key的值获得要排序的字符串,获得字符串的拼音的首字母,判断拼音的首字母是A-Z中的哪一个,然后放到数组中的对应的字典的数组中.

后来又做了一个对英文的首字母排序的程序,原理和上面的一样,还省略了将汉字转化为拼音的步骤。工具类的名称是:NH_OrderByPinYinFirstLetter。

代码:使用的时候直接调用下面的方法就行,是一个加号方法,第一个参数是保存要排序的元素的数组,第二个参数:如果数组中是Model或者字典,就写排序的依据的key值,如果数组中不是Model或字典,就写nil。

[objc] view plain copy

// 方法

+ (NSMutableArray *)baseOrderPinYinOnArr:(NSMutableArray *)arr ByKey:(NSString *)key  返回值的类

// 返回一个有24个元素的数组,数组里的元素是字典

// 字典里有两对键值对

//    title : 当前的拼音首字母 A - Z

// datas : 当前的拼音首字母对应的model所组成的数组

java数组排序

Java API针对集合类型排序提供了两种支持:

java.util.Collections.sort(java.util.List)

java.util.Collections.sort(java.util.List, java.util.Comparator)

第一个方法要求所排序的元素类必须实现java.lang.Comparable接口。

第二个方法要求实现一个java.util.Comparator接口。

java.lang.Comparable接口和java.util.Comparator接口是Java对排序最提供最基本支持。这两个接口不但可以用于集合元素排序,还可以用于数组排序。

如果数组或集合元素是String类型,则可以利用Java API实现的ComparatorString对象String.CASE_INSENSITIVE_ORDER为容器元素排序。

下面给出两个里测试,涵盖集合和数组的排序,并且还演示了数组和集合的相互转换,附件里面是完整的排序演示代码。

方法一:实现Comparable接口排序package collsort.comparable;

package com.cvicse.sort.comparable;

public class Cat implements ComparableCat {

private int age;

private String name;

public Cat(int age, String name) {

this.age = age;

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

......

public int compareTo(Cat o) {

return this.getAge() - o.getAge();

}

......

} 通过实现Comparable接口实现个性化排序测试。排序测试,Collection.sort(list)升序排列Collections.sort(list, Collections.reverseOrder());降序排列;Collections.reverse(list);反转排序,先输出列表最后一个元素

public class TestComparable {

public static void main(String args[]) {

test();

test2();

}

public static void test() {

......

ListCat listCat1 = new ArrayListCat();

Cat cat1 = new Cat(34, "hehe");

Cat cat2 = new Cat(12, "haha");

Cat cat3 = new Cat(23, "leizhimin");

Cat cat4 = new Cat(13, "lavasoft");

listCat1.add(cat1);

listCat1.add(cat2);

listCat1.add(cat3);

......

System.out.println("调用Collections.sort(ListT list)listCat2升序排序:");

Collections.sort(listCat1);

System.out.println("降序排列元素:");

Collections.sort(listCat1, Collections.reverseOrder());

System.out.println("Collections.reverse 从列表中最后一个元素开始输出:");

Collections.reverse(listCat1);

......

}

/**

* 针对数组的排序

*/

public static void test2() {

String[] strArray = new String[] { "z", "a", "C" };

System.out.println("数组转换为列表");

ListString list = Arrays.asList(strArray);

System.out.println("顺序排序列表");

Collections.sort(list);

System.out

.println("按String实现的Comparator对象String.CASE_INSENSITIVE_ORDER排序----");

Collections.sort(list, String.CASE_INSENSITIVE_ORDER);

System.out.println("倒序排序列表");

Collections.sort(list, Collections.reverseOrder());

......

}

}方法二:实现Comparator接口排序

public class Person {

private int age;

private String name;

......

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

......

} 实现了Comparator接口,重写了compare方法

import java.util.Comparator;

public class PersonComparator implements ComparatorPerson {

public int compare(Person o1, Person o2) {

return o1.getAge() - o2.getAge();

}

} 测试方法

public class TestComparator {

public static void main(String args[]) {

test1();

}

public static void test1() {

System.out.println("升序排序测试:");

ListPerson listPerson = new ArrayListPerson();

Person person1 = new Person(34, "lavasoft");

Person person2 = new Person(12, "lavasoft");

Person person3 = new Person(23, "leizhimin");

Person person4 = new Person(13, "sdg");

listPerson.add(person1);

listPerson.add(person2);

listPerson.add(person3);

ComparatorPerson ascComparator = new PersonComparator();

System.out.println("排序后集合为:");

// 利用Collections类静态工具方法对集合List进行排序

Collections.sort(listPerson, ascComparator);

System.out.println("\n降序排序测试:");

// 从升序排序对象产生一个反转(降序)的排序对象

ComparatorPerson descComparator = Collections

.reverseOrder(ascComparator);

System.out.println("利用反转后的排序接口对象对集合List排序并输出:");

Collections.sort(listPerson, descComparator);

outCollection(listPerson);

}

} 以上的例子中使用是对int类型的属性排序,对String属性排序可以用以下的方法

public int compareTo(Cat o) {return this.getName().compareTo(o.getName());}comparetTo()函数的使用说明:

如果 结果

0 ab

==0 a==b

=0 ab

Java如何通过所实现接口的方法进行排序是API内部的事情,Java这样处理排序目的就是对容器元素排序有一个统一的方式,以简化编程。

给个例子你自己看吧

Java中如何对集合排序

Java内建的排序(冒泡):Java集合有两个实现的工具类,Collections和Arrays。Collections针对集合类型。Arrays针对数组。只需要一个为你排序需要的定制的Comparator或Comparable的实现,将其作为参数传给Collections或Arrays的sort方法就行。

可以自己用程序去实现这个排序。用for从原List里面一个一个拿出来比较然后一个新建的List里面去。

楼主看一下参考资料。

java 怎么将List里面数据排序?

学生实体类,包含姓名和年龄属性,

比较时先按姓名升序排序,如果姓名相同则按年龄升序排序。

第一种:实体类自己实现比较

(实现comparable接口:public interface ComparableT ,里面就一个方法声明:public int compareTo(T o); )

然后利用List类的sort(Comparator? super E c)方法或java.util.Collections工具类的sort(ListT list) (其实里面就一句:list.sort(null); )进行排序:

结果:

第二种:借助比较器进行排序。

示例代码:

比较器java.util.Comparator类是一个接口(public interface ComparatorT ),包含int compare(T o1, T o2);等方法:

我们的比较器要实现该接口并实现compare方法:

比较的时候可以利用List的sort(Comparator? super E c)方法(或者java.util.Collections工具类的sort(ListT list, Comparator? super T c)方法)进行排序。

结果跟第一种方法一样:

关于java排序工具和java集合排序工具类的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。