4,(了解)date、Comparable、comparator

一、日期格式化操作类:SimpleDateFormat

● 构造方法:public SimpleDateFormat(String pattern)
● 将日期格式化为字符串:public final String format(Date date)
● 将字符串格式化为日期:public Date parse(String source)

//将日期变为字符串,格式化显示
Date date = new Date(); // 当前日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String str = sdf.format(date); // 将日期格式化为字符串

//将字符串变为日期
String str = "1980-09-19 12:12:12.122";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date date = sdf.parse(str);

二、比较器

● comparator 是一个外比较器,适用于对象不支持自身比较的类,定义一个类实现comparator接口,覆写compara方法,对象比较的话可以使用comparaTo()方法。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;

class Person  {
    private String name ;
    private int age ;
        //省略set,get方法
    public Person(String name,int age) {
        this.name = name ;
        this.age = age ;
    }
    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + "]\n";
    }
    
}
class testComparatorMethod implements Comparator<Person>{
    @Override
    public int compare(Person o1, Person o2) {
        
        int num = o1.getName().compareTo(o2.getName());
        if (num != 0){
            return num;
        }
        int numage = o1.getAge() - o2.getAge();
        return numage;
        
    }
}
public class testComparator {
    public static void main(String[] args) throws Exception {
        ArrayList<Person> list = new ArrayList<Person>();
        Person per1 = new Person("aaa",25);
        Person per2 = new Person("bbb",21);
        Person per3 = new Person("ccc",27);
        Person per4 = new Person("ddd",23);
        list.add(per3);
        list.add(per2);
        list.add(per4);
        list.add(per1);
        Collections.sort(list, new testComparatorMethod());
        
        Iterator<Person> iter = list.iterator();
        while(iter.hasNext()){
            System.out.println(iter.next());
        }
    }

    
}

● comparable:内比较器,用于在类内部进行比较
实例:


public class TestComparable {
    public static void main(String[] args) {
        
        Person2 per = new Person2("aaa");
        Person2 per1 = new Person2("bbb");
        System.out.println(per.compareTo(per1));
    }
}

class Person2 implements Comparable<Person2> {
    private String name;

    public String getName() {
        return name;
    }

    public Person2(String name) {
        this.name = name;
    }

    @Override
    public int compareTo(Person2 per) {

        if (this.name.compareTo(per.name) > 0)
            return 1;
        else if (this.name.compareTo(per.name) == 0)
            return 0;
        else
            return -1;
    }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,100评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,144评论 18 399
  • Java 语言支持的类型分为两类:基本类型和引用类型。整型(byte 1, short 2, int 4, lon...
    xiaogmail阅读 1,469评论 0 10
  • 第05天API 今日内容介绍 ·Object类& System类 ·日期相关类 ·包装类&正则表达式 ·Date对...
    chcvn阅读 559评论 0 1
  • 不知道别人如何 ,我从上了高中开始遍开始思考一个问题 ,人是为什么活着?人活着的意义是什么? 也许对很多人来...
    向日猫葵阅读 151评论 0 1

友情链接更多精彩内容