【TreeSet:请按照姓名的长度排序】

package com.yjf.esupplier.common.test;

import java.util.TreeSet;

/**
 * @author shusheng
 * @description 请按照姓名的长度排序
 * @Email [email protected]
 * @date 2018/12/17 10:36
 */
public class TreeSetDemo {

    public static void main(String[] args) {

        // 创建集合对象
        TreeSet<Student> ts = new TreeSet<Student>();

        // 创建元素
        Student s1 = new Student("linqingxia", 27);
        Student s2 = new Student("zhangguorong", 29);
        Student s3 = new Student("wanglihong", 23);
        Student s4 = new Student("linqingxia", 27);
        Student s5 = new Student("liushishi", 22);
        Student s6 = new Student("wuqilong", 40);
        Student s7 = new Student("fengqingy", 22);
        Student s8 = new Student("linqingxia", 29);
        // 添加元素
        ts.add(s1);
        ts.add(s2);
        ts.add(s3);
        ts.add(s4);
        ts.add(s5);
        ts.add(s6);
        ts.add(s7);
        ts.add(s8);

        // 遍历
        for (Student s : ts) {
            System.out.println(s.getName() + "---" + s.getAge());
        }

    }

}

class Student implements Comparable<Student> {

    private String name;
    private int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public int compareTo(Student s) {

        int num1 = this.name.length() - s.name.length();
        int num2 = num1 == 0 ? this.name.compareTo(s.name) : num1;
        int num3 = num2 == 0 ? this.age - s.age : num2;

        return num3;
    }
}

原文地址:https://www.cnblogs.com/zuixinxian/p/10340924.html

时间: 2024-10-10 16:50:41

【TreeSet:请按照姓名的长度排序】的相关文章

【TreeSet:请按照姓名的长度排序:比较器排序】

package com.yjf.esupplier.common.test; import java.util.Comparator; import java.util.TreeSet; /** * @author shusheng * @description 比较器排序 * @Email [email protected] * @date 2018/12/17 10:36 */ public class TreeSetDemo1 { public static void main(Strin

【TreeSet:请按照姓名的长度排序:匿名内部类】

package com.yjf.esupplier.common.test; import java.util.Comparator; import java.util.TreeSet; /** * @author shusheng * @description 优化:匿名内部类 * @Email [email protected] * @date 2018/12/17 10:36 */ public class TreeSetDemo2 { public static void main(St

Java基础知识强化之集合框架笔记47:Set集合之TreeSet保证元素唯一性和比较器排序的原理及代码实现(比较器排序)

1. TreeSet保证元素唯一性和比较器排序的原理及代码实现(比较器排序) (1)Student.java: 1 package cn.itcast_07; 2 3 public class Student { 4 private String name; 5 private int age; 6 7 public Student() { 8 super(); 9 } 10 11 public Student(String name, int age) { 12 super(); 13 thi

Java TreeSet集合排序 &amp;&amp; 定义一个类实现Comparator接口,覆盖compare方法 &amp;&amp; 按照字符串长度排序

package TreeSetTest; import java.util.Iterator; import java.util.TreeSet; import javax.management.RuntimeErrorException; /* 可以对set集合中的元素进行排序,其底层的数据结构是二叉树, 保证元素唯一性的依据是compareTo和return 0; TreeSet排序的第一种方式 让元素自身具备比较性 元素需要实现Comparable接口,覆盖compareTo方法 这种方式

Python中字符串List按照长度排序 - python

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 下面看下字符串List按照长度排序(python)的实现方法 myList = ['青海省','内蒙古自治区','西藏自治区','新疆维吾尔自治区','广西壮族自治区'] 1.首先得到每个字符串长度 2.排序,选择sorted或者 list.sort()进行排序 内置sorted返回一个新的列表,而list.sort是对列表进行操作 sorted(iterable, cmp=None, key=None, rever

Java基础知识强化之集合框架笔记44:Set集合之TreeSet保证元素唯一性和自然排序的原理和图解

1. TreeSet保证元素唯一性和自然排序的原理和图解

小记:目标数组的长度不够。请检查 destIndex 和长度以及数组的下限。

异常:System.ArgumentException: 目标数组的长度不够.请检查 destIndex 和长度以及数组的下限.(不好意思忘记截图了) 发生异常的代码如下: var list = new List<Topic>(); Parallel.For(2, totalPage + 1, page => { //AddRange 方法发生异常 list.AddRange(GetTopics(board.BoardID, page)); }); 原因:List<T> 集合

使用合并排序和快速排序对字符串按长度排序

前段时间要对字符串集合进行按长度排序,字符串长度长的排在队列前面,最短的排在最后,可以使用两种排序方法进行排序,其中快速排序的效能会好些,但快速排序在字符串的集合非常大的时候,有时会得不到正确的结果,具体原因还不清楚. 1.合拼排序的代码 using System; using System.Collections.Generic; using System.Text; namespace FtpproxyDownRule.DBUtility { public class sortbyStrin

Java中对姓名实现拼音排序

在这篇文章中,我记录了MySQL中如何实现对姓名按拼音排序,下面说明一下Java中如何实现这种排序.代码如下: 1 package com.review.chapter6; 2 3 import java.text.Collator; 4 import java.util.Collections; 5 import java.util.Comparator; 6 import java.util.Enumeration; 7 import java.util.Locale; 8 import j