java后台实现自定义排序,java 两种方式实现自定义排序
package test;
//Comparable 使对象本身具有可比性,这种方式称为元素的自然顺序或默认顺序
//Comparator 元素自身不具备比较性或者比较性不是所需要的,在集合初始化让其具有比较性 (更实用)
import java.util.*;
//class
public class TreeSetDemo {
public static void main(String[] args) {
TreeSet st=new TreeSet(new MyComparator());
st.add(new Student("bca",23));
st.add(new Student("bca",23));
st.add(new Student("abc",29));
st.add(new Student("dcba",24));
for(Iterator it=st.iterator();it.hasNext();)
{
Student p=it.next();
System.out.println(p.getName()+"==="+p.getAge());
}
}
}
class Student implements Comparable //实现了接口必须实现compare();
{
private String name;
private int age;
Student(String name,int age)
{
this.name=name;
this.age=age;
}
String getName()
{
return name;
}
int getAge()
{
return age;
}
@Override
public int compareTo(Student st)//实现compare方法
{
if(this.age>st.age)
return 1;
if(this.age==st.age)
return 0;
return -1;
}
}
//Object类实现了equail();所以实现接口以下时只需对compare()重写即可
class MyComparator implements Comparator//实现了接口必须实现compare();
{
@Override
public int compare(Student s1,Student s2)
{
int num=s1.getName().compareTo(s2.getName());
if(num==0)
{
return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));//Integer 类实现了Comparable接口
//if(s1.getAge()>s2.getAge())
//return 1;
//if(s1.getAge()==s2.getAge())
//return 0;
//return -1;
}
return num;
}
}
java后台实现自定义排序,java 两种方式实现自定义排序相关推荐
- Java中线程的创建有两种方式
Java中继承thread类与实现Runnable接口的区别 Java中线程的创建有两种方式: 1. 通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2. 通过 ...
- EntityFramework Core 2.0自定义标量函数两种方式
前言 上一节我们讲完原始查询如何防止SQL注入问题同时并提供了几种方式.本节我们继续来讲讲EF Core 2.0中的新特性自定义标量函数. 自定义标量函数两种方式 在EF Core 2.0中我们可以将 ...
- iOS 自定义layer的两种方式
在iOS中,你能看得见摸得着的东西基本都是UIView,比如一个按钮,一个标签,一个文本输入框,这些都是UIView: 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层 在创建UIVi ...
- java 深克隆_Java实现深克隆的两种方式
序列化和依次克隆各个可变的引用类型都可以实现深克隆,但是序列化的效率并不理想 下面是两种实现深克隆的实例,并且测试类对两种方法进行了对比: 1.重写clone方法使用父类中的clone()方法实现深克 ...
- java的websocket_java 实现websocket的两种方式实例详解
一.介绍 1.两种方式,一种使用tomcat的websocket实现,一种使用spring的websocket 2.tomcat的方式需要tomcat 7.x,JEE7的支持. 3.spring与we ...
- Java Spark之创建RDD的两种方式和操作RDD
首先看看思维导图,我的spark是1.6.1版本,jdk是1.7版本 spark是什么? Spark是基于内存计算的大数据并行计算框架.Spark基于内存计算,提高了在大数据环境下数据处理的实时性, ...
- websocket java 例子_java 实现websocket的两种方式实例详解
目录 一.介绍 1.两种方式,一种使用tomcat的websocket实现,一种使用spring的websocket 2.tomcat的方式需要tomcat 7.x,JEE7的支持. 3.spring ...
- Java中类加载器获取的两种方式
import org.junit.Test;import java.io.FileInputStream; import java.io.IOException; import java.io.Inp ...
- JAVA与PLC通讯读取数据(两种方式)
第一种方式(s7connector) S7官网:S7Connector - Documentation,有简单的读写操作参考. 1.创建maven工程引入依赖 <dependency>&l ...
- Java代码实现MD5加密的两种方式
MD5的全称是Message-Digest Algorithm 5 (信息-摘要算法),在90年代初,由MIT Laboratory for Computer Scientce 和RSA Data S ...
最新文章
- 英国工程巨头遭勒索攻击:运营临时中断 至少损失4亿元
- 定义zabbix_action报警通知模板
- 使用BootStrap编写网页,如何设置全屏页面背景?
- StringIO类的用途
- MVVM更容易内存泄露吗?
- 大数学家陶哲轩谈时间管理与高效工作的方法
- 802d简明调试手册_SINUMERIK-828D简明调试手册.pdf
- Python中对列表list进行定义、增删改查、遍历及与元组的对比
- 适用于5G网络的SAF Spectrum Compact 频谱仪
- matlab仿真函数,matlab自动控制仿真常见函数应用
- 跪了,腾讯数据工程师用Python可视化绘制的中国GDP数据地图,大佬就是不一样
- Python收集新闻其他辅助功能的实现
- /etc.login.defs 权限权限解析
- Unity笔记-29-ARPG游戏项目-03-攀爬系统
- PS 剪切图片到指定大小
- 【微信小程序】微信小程序基础知识篇
- php批量处理图片大小,wps如何批量处理图片大小
- 已成功与服务器建立连接,但是在登录过程中发生错误。
- App Store拒绝原因
- Python三方微博登录
热门文章
- javaweb----三层架构+
- leetcode 643. Maximum Average Subarray I | 643. 子数组最大平均数 I(Java)
- 【Python基础避坑】函数内存底层分析,全局变量/局部变量,参数传递,浅拷贝/深拷贝
- 【PAT甲级 BigInteger】1019 General Palindromic Number (20 分) Java版 7/7通过
- 文章转载-见贤思齐焉,见不贤而内自省也
- 04.elasticsearch-dynamic_mapping_and_index_template
- 牛客 -- leetcode -- evaluate-reverse-polish-notation
- 【手把手教学】基于Maven构建方式使用Mybatis generator自动生成
- 【leetcode-83】剑指 Offer 18-2 删除排序链表中的重复元素
- 【已解决】Unable to resolve column ‘name‘