`

TreeSet自定义排序

 
阅读更多
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

/**
 * .写一个应用程序,让美国,中国,俄罗斯,加拿大,巴西这五个国家按面积进行排序,
 * 其中美国950万平方公里,中国960万平方公里,俄罗斯1200万平方公里,加拿大990平方公里,
 * 巴西550万平方公里(要求:必须用集合来做)
 * @author 够潮
 *
 */
public class Demo6 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		/**
		 * 初始化数据
		 */
		Country country = new Country("中国",960);
		Country country2 = new Country("美国",950);
		Country country3 = new Country("俄罗斯",1200);
		Country country4 = new Country("加拿大",990);
		Country country5 = new Country("巴西",550);
		/**
		 * 填充数据
		 */
		Set<Country> set = new TreeSet<Country>();
		set.add(country);
		set.add(country2);
		set.add(country3);
		set.add(country4);
		set.add(country5);
		/**
		 * 遍历数据
		 */
		Iterator it = set.iterator();
		while(it.hasNext()){
			Country c  = (Country) it.next();
			System.out.println("国家:  " +c.name + "    国家面积"+c.area);
		}
		
		

	}

}

class Country implements Comparable{
	
	/**
	 * 面积
	 */
	public int area;
	/**
	 * 名称
	 */
	public String name;
	public Country( String name ,int area) {
		super();
		this.area = area;
		this.name = name;
	}
	public int compareTo(Object o) {
		Country country = (Country) o;
		//return this.area - country.area;//排序从小到大
		return -(this.area - country.area);//排序从大到小
	}
	
	
}

 

0
5
分享到:
评论

相关推荐

    在TreeSet中添加自定义对象

    通过以上两种方法,我们可以在`TreeSet`中添加自定义对象,并按照特定规则进行排序。选择哪种方法取决于实际需求:如果排序规则简单且固定,那么实现`Comparable`接口即可;若排序规则复杂或需要动态变化,则应考虑...

    HashSet和TreeSet_围墙之外

    TreeSet则基于TreeMap实现,它维护了元素的排序顺序,可以按照自然排序或自定义比较器进行排序。默认情况下,元素会按照它们的自然顺序(即Comparable接口定义的顺序)排序,如果元素不支持自然排序,可以在创建...

    解决TreeSet类的排序问题

    如果需要自定义排序规则,可以使用`Comparator`接口。在创建TreeSet时,传入一个实现了`Comparator`接口的实例,这样在进行比较时,就会使用这个Comparator的`compare(Object o1, Object o2)`方法。这允许我们根据...

    java竞赛中各种自定义排序模板

    在Java编程语言中,特别是在算法竞赛的环境下,经常会遇到需要对数据进行自定义排序的情况。以下将详细讲解三种常见的自定义排序方式: 1. **对象数组排序**: Java不支持像C++那样的结构体,因此当需要处理具有多...

    浅谈java中的TreeMap 排序与TreeSet 排序

    本文将详细探讨 `TreeMap` 和 `TreeSet` 的排序机制以及如何自定义排序规则。 首先,`TreeMap` 是一个有序的 `Map` 实现,它按照键(Key)的自然顺序或自定义比较器对键进行排序。在提供的代码示例中,创建了一个 `...

    (TreeSet) s.subSet(608, true, 611, true)

    8. **自定义排序**:通过传递Comparator实例给TreeSet构造函数,可以自定义元素的排序方式。 9. **实际应用**:TreeSet常用于需要排序且对性能有较高要求的场景,例如数据库索引、优先队列等。 以上就是关于标题和...

    排序之HashSet和TreeSet的区别

    它维护了元素的排序,可以按照自然顺序或者自定义比较器的顺序进行排序。自然顺序是指元素本身的`Comparable`接口实现,如果元素类型不实现`Comparable`,则需要在创建`TreeSet`时提供一个`Comparator`。`TreeSet`的...

    java 集合框架(TreeSet练习)

    1. **有序性**:`TreeSet`中的元素会根据其自然排序或者自定义比较器进行排序。 2. **唯一性**:不允许有重复元素,如果尝试添加已存在的元素,将会被忽略。 3. **效率**:由于基于红黑树,`add()`, `remove()` 和 `...

    JCF(List、Set、Map)学习,实现了<key,value>按value排序噢

    对于`TreeSet`,由于其只能存储单个对象,若要按值排序,我们需要创建一个包含键值对的自定义类,然后重写`compareTo()`方法,使其根据值进行比较。例如: ```java class ValueWrapper implements Comparable...

    HashSet和TreeSet.doc

    与 HashSet 相比,TreeSet 的迭代顺序是可预测的,即按照元素的升序或自定义排序顺序进行。 在使用这两种集合时,需要注意以下几点: 1. 对于 HashSet,确保添加的对象正确实现了 `hashCode()` 和 `equals()` 方法...

    javaTreeSet实现图书管理系统

    对`Library`的`TreeSet&lt;Book&gt;`,可以通过自定义比较器(Comparator)实现按借出次数排序。每个`Book`对象可以维护一个计数器,表示被借出的次数。在比较器中,比较这个计数器,从而实现排序。然后遍历排序后的`...

    treeset 和 hashlist 实现的扑克牌游戏

    `TreeSet`保证了元素的排序性,无论是自然排序还是自定义比较器排序。它不允许有重复元素,并且提供了一种高效的查找、添加和删除元素的方法,时间复杂度通常为O(log n)。 在设计扑克牌游戏时,我们可能需要考虑...

    java集合-TreeSet的使用

    或者,可以在创建 TreeSet 时提供一个比较器(Comparator)来指定自定义的排序规则。 唯一性:TreeSet 中不允许重复元素,每个元素都必须是唯一的。如果将重复元素添加到 TreeSet 中,后面的重复元素将被忽略。 ...

    treemap treeset hashset hashmap 简要介绍

    由于`TreeMap`内部维护了一个红黑树,因此它的键值对是按照键的自然顺序或自定义排序顺序排列的,这使得`TreeMap`非常适合需要保持键有序的场景。 ### TreeSet `TreeSet`是基于`TreeMap`实现的一个Set(集合)实现...

    day18-集合-中(HashSet&TreeSet&比较器).zip

    当我们使用`TreeSet`或者对其他需要排序的集合进行自定义排序时,可以实现`Comparator`接口。`Comparator`有两个核心方法:`compare()`和`equals()`。`compare()`方法用于比较两个对象并返回一个整数值,规定了小于0...

    java List 排序 Collections.sort

    本文将深入探讨`Collections.sort()`的使用、原理以及如何自定义排序规则。 首先,`Collections.sort()`的基本用法是针对实现了`Comparable`接口的类的实例。例如,我们有一个`Person`类,它包含了姓名和年龄属性,...

    最快的排序算法 java最快的排序-在Java中对列表进行排序的最快方法,排序算法数据结构

    在实际应用中,使用自定义的比较器可以实现灵活的排序规则,例如,可以根据不同的字段或条件进行排序。例如,在上述代码中,可以根据 serverDataRate 字段对 ServerInfo 对象列表进行排序。 在 Java 中,还有其他的...

    JAVA 键盘录入学生成绩,排序后输出

    这里提到的“set中自定义排序规则”,暗示可能使用了`HashSet`或`TreeSet`,因为Set接口的实现类不包含重复元素,并且`TreeSet`可以根据自定义的比较器进行排序。 3. **自定义排序规则**:在Java中,如果要自定义...

    SortListView按字母排序改进版

    - 如果需要支持多种排序方式(如正序、反序或自定义排序),可以设置不同的排序标志,并在触发排序时根据标志选择相应的比较器。 8. **用户反馈与UI设计**: - 显示当前的排序状态,如一个指示当前排序方式的图标...

    数组和集合的排序.rar

    3. **自定义排序规则**:在集合中,可以通过实现Comparator接口或重写Comparable接口来改变元素的比较规则,从而实现自定义排序。 **排序算法的性能分析** - 时间复杂度:衡量算法效率的重要指标,如冒泡排序为O(n...

Global site tag (gtag.js) - Google Analytics