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 集合类详解 Java 集合排序及java 集合类详解,Java里面最重要、最常用也就是集合那部分了,能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本教程详细解释了关于Java中的集合是...
在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java集合主要分为两大类:List(列表)和Set(集)。List是一个有序的集合,允许元素重复,并且可以...
Java集合排序及java集合类详解(Collection、List、Map、Set).doc
总结来说,Java集合框架提供了强大的工具来处理分组和排序,包括`List`接口的`sort()`方法和流API的`groupingBy()`和`sorted()`。在实际项目中,可以根据需求选择合适的方法。同时,`ArrayHelp`和`ClassLoadUtil`...
Java 集合类详解 Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、...
所涉及的集合类不仅包括 Java SE 1.2 引入的集合类,还包括旧集合类(Java SE 1.2 前引入)和新集合类(Java SE 5 引入)。 Java 线程安全的等级定义根据 Bloch 的定义,将线程安全分为五个等级: 1. 非可变:如果...
java 集合排序及java集合类详解,本文详细解释了关于java中的集合实现,以及他们的实现原理
Java集合排序及java集合类详解[定义].pdf
Java集合类是Java编程语言中用于存储和管理对象的关键组件,它们构成了Java Collections Framework的核心。这个框架提供了一组高效、灵活的数据结构,使得开发者能够轻松地处理数据集合,而无需关心底层实现的复杂性...
本文将对Java集合框架中的Collection接口及其相关接口、类进行深入的探讨。 首先,Collection接口是所有单值容器的基础,它是Set、List和Queue接口的父接口。Collection接口定义了通用的操作方法,如`add()`用于...
### Java集合排序及java集合类详解 #### 集合框架概述 集合是Java编程语言中非常核心且广泛使用的部分,对于深入理解和高效使用Java语言至关重要。本文将围绕Java集合框架进行详细介绍,包括Collection、List、Set...
集合类的框架为集合的实现者提供了大量的接口和抽象类,并对其中的某些机制给予了描述,例如,Iterator(迭代协议)。实现Comparable接口或Comparator接口,用户可以根据需要对集合中的元素进行排序。为了方便用户...