`

java集合类的排序

    博客分类:
  • java
阅读更多

      java 集合类的排序主要是用Collections.sort方法,Collections和Collection是不一样的,前者是类,后者是接口,我主要是想说明它的sort方法的几种类型,提示:实现接口的方法时,只需要比较两个数,大的返回1,相等返回0,小于返回-1。简单的说就是在方法里这样写:s1.num>s2.num?1:(s1.num==s2.num?0:-1);还要注意一点,在java中字符串比较是要用compareTo()方法来做比较的,方法就直接返回0或1或-1。

1.Collections.sort(List arg0);
这种是最简单的一种排序方法,只需要在List中存放的类中实现Comparable 接口及实现public int compareTo(Object arg0)方法即可。
2.Collections.sort(List arg0,Comparator arg1);
这种加入了比较器,具有更大的灵活性,便于管理,比较器可作为内部静态类的,以便于管理。比较器必须实现Comparator接口,具体可参照下列代码:

import java.util.Comparator;

public class Infoma {

    private String ip;

    private Integer port;

 

    public Infoma(int port,String ip){
        this.ip=ip;
        this.port=port;
    }
   
    public static class SrcIpComparator implements Comparator{
        public int compare(Object obj1,Object obj2){
            CurrentFlow curFlow1=(CurrentFlow)obj1;
            CurrentFlow curFlow2=(CurrentFlow)obj2;
            int result=curFlow1.streamSrcIp.compareTo(curFlow2.streamSrcIp);
            if(result==0){
                result=curFlow1.streamSrcPort.compareTo(curFlow2.streamSrcPort);
            }
            return result;
        }
    }
   
   /**
     * @return the streamSrcIp
     */
    public String getStreamSrcIp() {
        return streamSrcIp;
    }

    /**
     * @return the streamSrcPort
     */
    public Integer getStreamSrcPort() {
        return streamSrcPort;
    }

    /**
     * @param streamSrcIp the streamSrcIp to set
     */
    public void setStreamSrcIp(String streamSrcIp) {
        this.streamSrcIp = streamSrcIp;
    }

    /**
     * @param streamSrcPort the streamSrcPort to set
     */
    public void setStreamSrcPort(Integer streamSrcPort) {
        this.streamSrcPort = streamSrcPort;
    }
   
}

 

public class Test {

    public static void main(String[] args){
  ArrayList a1=new ArrayList();
  Infomas1=new Infoma(4,"172.33.2.2");
  Infoma s2=new Infoma(2,"22.3.33.5");
  Infoma s3=new Infoma(3,"116.56.4.3");
  Infoma s4=new Infoma(4,"202.196.8.4");
  
  a1.add(s1);
  a1.add(s2);
  a1.add(s3);
  a1.add(s4);
  //Collections.sort(a1);
  Collections.sort(a1,new Student.StudentComparator());
  printElements(a1);
  System.out.println(Collections.max(a1));
 }

}

分享到:
评论

相关推荐

    Java集合排序及java集合类详解.pdf

    Java集合排序及java集合类详解.pdf

    Java 集合排序及java 集合类详解

    Java 集合排序及java 集合类详解 Java 集合排序及java 集合类详解,Java里面最重要、最常用也就是集合那部分了,能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本教程详细解释了关于Java中的集合是...

    Java集合排序及java集合类详解

    在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java集合主要分为两大类:List(列表)和Set(集)。List是一个有序的集合,允许元素重复,并且可以...

    Java集合排序及java集合类详解(Collection、List、Map、Set).doc

    Java集合排序及java集合类详解(Collection、List、Map、Set).doc

    java 集合分组与排序

    总结来说,Java集合框架提供了强大的工具来处理分组和排序,包括`List`接口的`sort()`方法和流API的`groupingBy()`和`sorted()`。在实际项目中,可以根据需求选择合适的方法。同时,`ArrayHelp`和`ClassLoadUtil`...

    java集合类详解(set list ArrayList等java集合类详述)

    Java 集合类详解 Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、...

    java集合类线程安全.doc

    所涉及的集合类不仅包括 Java SE 1.2 引入的集合类,还包括旧集合类(Java SE 1.2 前引入)和新集合类(Java SE 5 引入)。 Java 线程安全的等级定义根据 Bloch 的定义,将线程安全分为五个等级: 1. 非可变:如果...

    java 集合排序及java集合类详解

    java 集合排序及java集合类详解,本文详细解释了关于java中的集合实现,以及他们的实现原理

    Java集合排序及java集合类详解[定义].pdf

    Java集合排序及java集合类详解[定义].pdf

    第13讲 JAVA集合类.ppt

    Java集合类是Java编程语言中用于存储和管理对象的关键组件,它们构成了Java Collections Framework的核心。这个框架提供了一组高效、灵活的数据结构,使得开发者能够轻松地处理数据集合,而无需关心底层实现的复杂性...

    java集合类总结

    本文将对Java集合框架中的Collection接口及其相关接口、类进行深入的探讨。 首先,Collection接口是所有单值容器的基础,它是Set、List和Queue接口的父接口。Collection接口定义了通用的操作方法,如`add()`用于...

    Java集合排序及java集合类详解(Collection、List、Map、Set)

    ### Java集合排序及java集合类详解 #### 集合框架概述 集合是Java编程语言中非常核心且广泛使用的部分,对于深入理解和高效使用Java语言至关重要。本文将围绕Java集合框架进行详细介绍,包括Collection、List、Set...

    java集合类演示源码

    集合类的框架为集合的实现者提供了大量的接口和抽象类,并对其中的某些机制给予了描述,例如,Iterator(迭代协议)。实现Comparable接口或Comparator接口,用户可以根据需要对集合中的元素进行排序。为了方便用户...

Global site tag (gtag.js) - Google Analytics