`
ol_beta
  • 浏览: 287707 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

集合排序 Comparator Comparable

    博客分类:
  • java
阅读更多

复习,顺便记录下来!

通过Collections.sortArrays.sort 对对象排序时,有两种方式,排序对象实现Comparable接口重写compareTo方法和给sort方法传递实现Comparator接口的参数,下面的SortObject对象,实现了这两中方法。

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
 
/**
* @version 1.0
* @author Oliver
* @since 1.0
*/
publicclass HashSetTest
{
    //自定义MyString类
    staticclass MyString{
        String value;
 
        public MyString(String value)
        {
            this.value = value;
        }
    }
    publicstaticvoid main(String[] args)
    {
        //创建一个HashSet对象
        Set<Object> set = new HashSet<Object>();
        //创建连个String对象
        String s1 = new String("a");
        String s2 = new String("a");
        //创建连个MyString对象
        MyString s3 = new MyString("a");
        MyString s4 = new MyString("a");
        //添加元素
        set.add(s1);
        set.add(s2);
        set.add(s3);
        set.add(s4);
        //看看对象的equals
        System.out.println("s1.equals(s2):"+s1.equals(s2));
        System.out.println("s3.equals(s4):"+s3.equals(s4));
        //打印几个大小及里面的元素
        System.out.println("set size:"+set.size());
        for(Iterator<Object> it=set.iterator();it.hasNext();){
            System.out.println(it.next());
        }
    }
}
 

测试代码:

 package oliver.java.test.sort;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class TestMain {
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		List sortList = new ArrayList(Arrays.asList(new SortObject("Jhon"),
				new SortObject("Oliver"), new SortObject("David"), new SortObject("Oliver"),
				new SortObject("Lucy"), new SortObject("Mark"), new SortObject("Oliver")));
		System.out.println("before sort:" + sortList.toString());
		// 下面这两句效果相同

		// Collections.sort(sortList);
		Collections.sort(sortList, new SortObject.SortObjectComparator());
		System.out.println("after sort:" + sortList.toString());
	}
}
 
分享到:
评论

相关推荐

    java中Comparable和Comparator的区别

    在集合排序时,如果集合元素类型不支持自然排序或者需要特殊的排序方式,可以使用Comparator。例如,我们可以创建一个Person类,并根据年龄排序: ```java class Person { String name; int age; // ...构造器...

    java的Comparator和Comparable.docx

    当我们需要对一个集合或数组中的非数值类型对象进行排序,或者需要根据对象的多个属性进行复杂排序时,Comparator 就派上了用场。 Comparator 接口有一个核心方法 `compare(T o1, T o2)`,这个方法返回一个整数值,...

    JAVA集合的使用(List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类、equals、hashCode)

    要注意的是List,Set,Queue继承了Collection接口,...这里想用一个简单的例子展示一下他们的使用,内容包括:List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类,泛型、重写equals、hashCode

    Java中Comparable和Comparator的区别

    例如,当我们有一个自定义类的集合,并且需要按照多种方式进行排序时,可以先让类实现Comparable接口,表示其默认的排序规则,然后在需要其他排序规则时,创建Comparator实例并传递给Collections.sort()或者TreeSet...

    List对象集合的排序:比较器Comparator(简单例子)

    在`List`对象集合中使用`Comparator`进行排序,通常需要调用`Collections.sort()`或`list.sort()`方法。例如,假设我们有一个`Person`类,其中包含`name`和`age`属性,我们想要根据年龄对`Person`对象列表进行排序:...

    Java中Comparable和Comparator 2种实现方式学习

    在Java编程语言中,排序是常见的操作,而`Comparable`和`Comparator`接口则是实现对象排序的两种主要方式。这篇文章将深入探讨这两种实现方式及其在实际编程中的应用。 首先,`Comparable`接口位于`java.lang`包下...

    Comparable与Comparator的区别

    当我们自定义一个类并希望它在集合(如List)中能自动排序时,就需要实现Comparable接口。通过重写`compareTo()`方法,我们可以设定对象按照哪种规则进行排序。默认的自然顺序排序就是通过`compareTo()`方法定义的。...

    Comparable与Comparator的区别Java开

    在Java编程语言中,`Comparable`接口和`Comparator`接口是两种重要的排序机制,它们用于对集合中的对象进行比较和排序。理解它们的区别对于任何Java开发者来说都是至关重要的。 首先,`Comparable`接口位于`java....

    对比Java中的Comparable排序接口和Comparator比较器接口

    在Java编程语言中,Comparable和Comparator接口用于对对象进行比较和排序。这两个接口在很多情况下都能派上用场,但它们的应用场景和实现方式有所不同。 首先,Comparable接口是排序接口,意味着一个类如果实现了...

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

    ### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...

    java中集合排序

    本文将深入探讨Java中集合排序的相关知识点,包括基本概念、排序方法以及常用类的实现。 1. **集合接口与实现** Java集合框架主要包括`List`, `Set`, 和 `Map`三大接口。其中,`List`接口要求元素有序,允许重复;...

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

    本文将深入探讨Java集合排序以及各种集合类的详细使用。 首先,让我们了解一下Java集合框架的基本概念。Java集合框架主要包括两种类型的容器:集合(Collection)和映射(Map)。集合用于存储一组不重复的元素,而...

    java中进行集合排序

    ### Java中进行集合排序 在Java编程中,对集合(如`List`)中的对象进行排序是一项常见的操作。本文将详细介绍如何根据对象的特定属性来实现升序或降序排序。 #### 标题:Java中进行集合排序 该标题表明文章的...

    Java Comparable和Comparator对比详解

    Java Comparable和Comparator对比...在实际项目开发过程中,我们经常需要对某个对象或者某个集合中的元素进行排序,使用 Comparable 接口和 Comparator 接口可以实现自定义的排序规则,提高代码的灵活性和可维护性。

    java集合排序方法总结共13页.pdf.zip

    Java集合排序涉及的知识点广泛,包括基本的`Collections.sort()`、自定义Comparator、Stream API、并行排序以及泛型等。理解这些概念并熟练运用,能显著提高代码质量和效率。在实际编程中,根据具体需求选择合适的...

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

    集合排序** Java集合框架中的排序通常涉及到两种方式:自然排序和定制排序。对于实现了Comparable接口的元素,如String和Integer,集合会自动进行自然排序。若需自定义排序规则,可以提供Comparator实例。 1. ...

Global site tag (gtag.js) - Google Analytics