java中Collection,Arrays内元素的排序问题(comparable,comparator接口的应用)

在我们通常对于collection的使用过程中,很多时候都需要对内部的元素进行排序。对于这个排序,通常可以有两种实现方式:

1.创建一个comparator类实现comparator接口,然后应用collection内部提供的sort方法进行排序。例如对于图中的边,按照其权值大小进行排序(后面介绍第二种方法也是就这个例子进行)。

边Edge的实现如下:

public class Edge{

Vertex s,t;

double weight;

。。。

}

我们实现的comparator类定义如下:

进行排序的方法如下:

public void sort(List<Edge> edges){

  EdgeComparator comparator = new EdgeComparator();

  Collections.sort(edges,comparator);

}

这样我们就可以对于edges中的Edge按照其权值的大小进行排序了。在我们的实际应用中,可以按照自己的需要自行调整。

2.让你的ADT实现Comparable接口,然后override compareTo()方法。这种方法与Comparator的区别主要是不需要构建新的Comparator类,比较代码放在ADT内部。

由此我们重写上面定义的Edge类如下:

再应用Collections.sort(edges)对edges进行排序。

原文地址:https://www.cnblogs.com/mrchi/p/9218458.html

时间: 2024-10-03 00:27:03

java中Collection,Arrays内元素的排序问题(comparable,comparator接口的应用)的相关文章

html中的行内元素和块级元素小结

一.首先我们总结下行内元素和块级元素有哪些: 行内元素: <a>标签可定义锚<abbr>表示一个缩写形式<acronym>定义只取首字母缩写<b>字体加粗<bdo>可覆盖默认的文本方向<big>大号字体加粗<br>换行<cite>引用进行定义<code>定义计算机代码文本<dfn>定义一个定义项目<em>定义为强调的内容<i>斜体文本效果<img>向网

java 中Collection数据结构的用法

JAVA中常用的数据结构(java.util. 中) java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类.其主要的关系(继承关系)有:  (----详细参见java api文档!) Collection---->Collections                                                                          

JAVA中Collection接口和Map接口的主要实现类

Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set. 所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Collectio

java中Collection框架的讲解

下面要开始java中相关集合框架的学习啦. Are you ready?Let's go~~ 今天要讲解的Java中的Collection框架. 1) 首先查看jdk中Collection类的源码后会发现如下内容: ... * @see AbstractCollection * @since 1.2 */ public interface Collection<E> extends Iterable<E> { // Query Operations 通过查看可以发现Collecti

Java中Collection和Collections的区别

1.java.util.Collection 是一个集合接口(集合类的一个顶级接口).它提供了对集合对象进行基本操作的通用接口方法.Collection接口在Java 类库中有很多具体的实现.Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set. Collection   ├List   │├LinkedList   │├ArrayList   │└Vector   │ └Stack   └Set 2.java.util.Collectio

java中Collection 与Collections的区别

1. Collection是集合类的一个顶级接口,其直接继承接口有List与Set 而Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序.搜索以及线程安全等各种操作. 1) 排序(Sort)使用sort方法可以根据元素的自然顺序 对指定列表按升序进行排序.列表中的所有元素都必须实现 Comparable 接口.此列表内的所有元素都必须是使用指定比较器可相互比较的double array[] = {112, 111, 23, 456, 231

Java中Collection和Collections的区别2 更多代码

1. Collection是集合类的一个顶级接口,其直接继承接口有List与Set 而Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序.搜索以及线程安全等各种操作. 1) 排序(Sort)使用sort方法可以根据元素的自然顺序 对指定列表按升序进行排序.列表中的所有元素都必须实现 Comparable 接口.此列表内的所有元素都必须是使用指定比较器可相互比较的double array[] = {112, 111, 23, 456, 231

java中Collection类及其子类

1:对象数组(掌握) (1)数组既可以存储基本数据类型,也可以存储引用类型.它存储引用类型的时候的数组就叫对象数组. 2:集合(Collection)(掌握) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组 而数组的长度固定,所以不适合做变化的需求,Java就提供了集合供我们使用. (2)集合和数组的区别? A:长度区别 数组固定 集合可变 B:内容区别 数组可以是基本类型,也可以是引用类型 集合

Java中Collection和Collections的区别(引用自:http://www.cnblogs.com/dashi/p/3597937.html)

1.java.util.Collection 是一个集合接口(集合类的一个顶级接口).它提供了对集合对象进行基本操作的通用接口方法.Collection接口在Java 类库中有很多具体的实现.Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set. Collection   ├List   │├LinkedList   │├ArrayList   │└Vector   │ └Stack   └Set 2.java.util.Collectio