`
y806839048
  • 浏览: 1117141 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Java工具类排序

阅读更多

Java工具类排序

 

一、直接调用工具类

sort(排序目标,排序算法),这个方法直接来自Collections工具类;

  Collections.sort(list);//自然顺序的升序进行排序

Collections.sort(al, new Comparator<Interval>() {

  public int compare(Interval b1, Interval b2) {

    return b1.start - b2.start;//用匿名类的方式做好1,0,-1规则

  }

});

 

二、在实体中实现Comparable接口,接口方法中做好1,0,-1规则,结合conllections.sort();使用即这里之后直接用这个方法即可不需再写规则

 

public class User implements Comparable<Object>{

    int id;

    String name;

 

   @Override

    public int compareTo(Object o) {

        if(this ==o){

            return 0;            

        }

        else if (o!=null && o instanceof User) {   

            User u = (User) o; 

            if(id<=u.id){

                return -1;

            }else{

            return 1;

        }

    }else{

        return -1;

    }

}

 

    }

 

 

 

 

 

public class Test {

    // 编写Comparator,根据User的id对User进行排序

    private static final Comparator<User> COMPARATOR = new Comparator<User>() {

        public int compare(User o1, User o2) {

            return o1.compareTo(o2);// 运用User类的compareTo方法比较两个对象

        }

    };

 

    public static void main(String[] args) {

        ArrayList<User> student = new ArrayList<User>();

        User user1 = new User(1, "yueliming");

        User user2 = new User(5, "yueliming");

        User user3 = new User(2, "yueliming");

        student.add(user1);

        student.add(user2);

        student.add(user3);

        Collections.sort(student, COMPARATOR);// 用我们写好的Comparator对student进行排序

        for (int i = 0; i < student.size(); i++) {

            System.out.println(student.get(i).getId() + student.get(i).getName());

        }

    }

}

 

 

 

 

 

三、比for循环高效一点的搜素

binarySearch 

使用二分搜索法搜索指定列表,以获得指定对象。

 

binarySearch(List(T) list) 

注意:在进行此调用之前,必须根据列表元素的自然顺序对列表进行升序排序(通过 sort(List) 方法)。

 

binarySearch(List(T) list,Comparator()) 

注意:在进行此调用之前,必须根据指定的比较器对列表进行升序排序(通过 sort(List, Comparator) 方法)///之前没有排序的list这里还是要排序

 

 public static void demo() 

    {

        List<String> list=new ArrayList<String>();

        list.add("abcd");

        list.add("aaaaa");

        list.add("23415");

        list.add("qq");

        list.add("abcd");

        list.add("23410");

        list.add("mmm");

        list.add("abcd");

        Collections.sort(list);//自然顺序的升序进行排序

        //Collections.sort(list,new StrlenComparator());//必须先排序

        sop(list);

        int index_1=Collections.binarySearch(list,"qq");//若不存在返回的是最后查找的插入点

        int index_2=halfSerch2(list,"23400",new StrlenComparator());//调用比较器比较

        sop("index_1="+index);  

        sop("index_2="+index_2);                        

    }

 

 

分享到:
评论

相关推荐

    java List排序工具类

    java List排序工具类 使用示例: new OrderUtils().order(list, "name", OrderUtils.DESC); 相关实例代码: public static void main(String[] args) { List&lt;Person&gt; list = getData(); // 获取无序数据 new ...

    java工具类集合

    Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...

    java快速排序工具类

    使用泛型的对象排序工具类(使用算法:快速排序),适合初学者学习快速排序的基本原理和实现。

    java常用的工具类整理28个

    在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法用于执行特定任务,如数据操作、文件处理、数学计算等。它们通常不包含实例变量,只提供静态方法服务,帮助开发者提高代码的复用性和...

    Java将2个List集合合并到一个List里面并排序工具类

    Java将2个List集合合并到一个List里面并排序工具类 1、Java编程资源,定义了一个名为`ListMerger`的工具类,主要包含一个名为`mergeAndSortLists`的静态方法。此方法用于将两个已经根据时间顺序排列的List合并成一...

    比较全的java工具类

    Java工具类是编程中不可或缺的一部分,它们提供了许多实用的功能,帮助开发者提高代码的效率和可维护性。在Java中,工具类通常包含了各种通用的方法,适用于多种场景,减少了重复编码的工作。以下是一些主要的Java...

    30个java工具类

    Java工具类是程序员在开发过程中经常使用的类库,它们提供了各种通用的功能,使得代码更加简洁、高效。在Java中,工具类通常是静态方法的集合,用于处理常见的编程任务,如字符串操作、数学计算、日期时间处理等。...

    一些java常用的工具类

    总之,Java工具类是提高开发效率的关键,它们封装了常见的操作,减少了代码重复,提高了代码可读性和维护性。"一些java常用的工具类"可能涵盖了上述的多种功能,为开发者提供了方便快捷的编程体验。通过理解和利用...

    java 中文姓氏 排序

    1. **Collator 类**:这是 Java 中用于文本排序和检索的标准类。`Collator` 类提供了与语言环境相关的字符串排序和比较服务。 2. **Comparator 接口**:这是一个接口,用于定义比较两个对象的自然顺序的方法。 3. **...

    java工具类

    Java工具类是Java编程语言中一个非常重要的组成部分,它们提供了许多实用的方法,帮助开发者更高效地处理各种编程任务。在Java中,工具类通常被设计为静态方法集合,不依赖于实例化对象,可以直接调用类中的方法进行...

    java常用工具类汇总

    "Java常用工具类汇总"是一个集合了各种实用工具类的资源,旨在方便开发者在处理常见任务时提高效率。这个工具类库覆盖了字符串、文件、数组以及数学等多个方面,同时也提供了相应的API文档,使得开发者能够更好地...

    自定义java常见工具类

    java开发中常用的工具类 比如 1:hibernate的配置 工具类复写 2:字符串加密 MD5加密 3:javabean到map的自动映射封装 4:javabean java对象到xml的自动封装 5:各种日期格式的处理 6:json的自动封装处理 7:...

    我积攒的java工具类 基本满足开发需要的工具类

    D:\002 我的工具类\024 Java对各种排序算法的实现\新建文本文档.txt D:\002 我的工具类\025 公农历互转 D:\002 我的工具类\025 公农历互转\LunarCalendar.java D:\002 我的工具类\026 数字金额大写转换 D:\002 我的...

    27个java工具类

    本压缩包提供了27个常用的Java工具类,涵盖了编码解码、安全加密、日期时间处理、文件操作等多个领域。以下是这些工具类的详细介绍: 1. **Base64Util**:这是一个用于Base64编码和解码的工具类。Base64是一种广泛...

    牛逼的java常用工具类

    下面,我们将详细探讨一些可能包含在其中的关键Java工具类知识点。 1. **集合框架**:Java集合框架是Java中处理对象集合的核心API,包括List、Set、Map等接口以及ArrayList、HashSet、HashMap等实现类。高效的数据...

    Java常用工具类大全,工作5年精心整理.zip

    "Java常用工具类大全,工作5年精心整理.zip"这个压缩包文件很可能包含了一位有经验的Java开发者在五年工作中积累的各种实用工具类,这些工具类能够极大地提高开发效率,简化代码编写。以下是对可能包含的知识点进行...

    java 常用工具类

    Java工具类是Java编程中非常重要的组成部分,它们提供了一系列预定义的方法,可以帮助开发者高效地处理各种常见任务,而无需从头实现。在Java中,最知名的工具类库是`java.util`包,它包含了大量方便实用的类。下面...

    Java常用工具类

    Java常用工具类是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,最著名的工具类库是`java.util`包,它包含了大量实用类,如集合、日期时间、数学计算、...

    JAVA对象以及数据的工具类

    总的来说,Java工具类是对基础类型、对象和数据处理的一种抽象和优化,提高了开发效率和代码质量。理解并熟练使用这些工具类,对于提升Java编程能力至关重要。通过不断学习和实践,我们可以更好地利用这些工具类,写...

    飞龙Java工具类

    "飞龙Java工具类"是一组实用的Java代码库,旨在简化常见的编程任务,提高开发效率。这个工具类集合包含了处理日期、集合操作、排序、正则表达式等多种功能,对于任何Java开发者来说都是宝贵的资源。 1. **日期处理*...

Global site tag (gtag.js) - Google Analytics