JAVA笔记10__Math类、Random类、Arrays类/日期操作类/对象比较器/

/**
 * Math类、Random类、Arrays类:具体查JAVA手册。。。。。。
 */
public class Main {
    public static void main(String[] args) {
        String[] s1 = {"a","b","c","d","e"};
        String[] s2 = {"a","b","c","d","e"};
        boolean b = Arrays.equals(s1,s2); //比较两数组内容
        System.out.println(b); //输出true

        String[] s3 = new String[6];
        Arrays.fill(s3,"井空");
        System.out.println(s3.length);
        for(String i:s3) System.out.print(i+" "); System.out.println();

        String[] s4 = Arrays.copyOfRange(s1, 2, 3); //[2,3)
        for(String i:s4) System.out.print(i+" "); System.out.println();

        int index = Arrays.binarySearch(s1, "c");
        System.out.println(index);
    }
}
/**
 * 日期操作类
 * Date类:表示特定的瞬间,精确到毫秒,也是程序运行时的当前时间
 * Calendar类:可以精确到毫秒
 * DateFormat类
 * SimpleDateFormat类:日期格式化类
 */
public class Main {
    public static void main(String[] args) {
        Date d1 = new Date();
        Date c = new Date();
        System.out.println(d1.getTime()); //毫秒表示
        System.out.println(d1); //格式表示

        //两种实例化方式
        Calendar ca1 = Calendar.getInstance();
        Calendar ca2 = new GregorianCalendar(); //阳历
        int year = ca1.get(Calendar.YEAR);
        int month = ca1.get(Calendar.MONTH)+1;
        int day = ca1.get(Calendar.DAY_OF_MONTH);
        int hour = ca1.get(Calendar.HOUR);
        int minute = ca1.get(Calendar.MINUTE);
        int second = ca1.get(Calendar.SECOND);
        System.out.println(year+" "+month+" "+day);
        System.out.println(hour+" "+minute+" "+second);

        DateFormat df1 = DateFormat.getDateInstance();
        DateFormat df2 = DateFormat.getTimeInstance();
        String nowDate = df1.format(new Date());
        String nowTime = df2.format(new Date());
        System.out.println(nowDate);
        System.out.println(nowTime);

        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy^MM^dd HH:mm:ss SSS毫秒");
        String swa = sdf1.format(new Date());
        System.out.println(swa);
    }
}
/**
 * 对象比较器:对两个或多个数据项进行比较,以确定它们是否相等,或确定它们之间的大小关系
 * Comparable接口:强行对实现它的每个类的对象进行整体排序,类的compareTo方法被称为它的自然比较方法
 * 如果自定义类的对象要实现排序,那么就要实现Comparable接口,并实现接口的CompareTo方法
 *
 * Comparable接口要求自定义类去实现,按照OO原则:对修改关闭,对扩展开放。
 * 如果这个类已经定义好,不想再去修改它,如何实现? 答:Arrays.sort有一个重载方法:
 */
public class Main {
    public static void main(String[] args) {
        String[] names = {"a","b","c","d","e","f"};
        Person[] persons = {
            new Person("a",10), new Person("b",9),
            new Person("c",8),  new Person("d",7),
            new Person("e",6),  new Person("f",5),
        };
        //自定义类对对象数组排序
        Arrays.sort(persons);
        for(Person i:persons) System.out.println(i.name+" "+i.age);

        Person2[] persons2 = {
            new Person2("a",10), new Person2("b",9),
            new Person2("c",8),  new Person2("d",7),
            new Person2("e",6),  new Person2("f",5),
        };
        Arrays.sort(persons2,new Person2Comparator()); //使用自定义的比较器
        for(Person2 i:persons2) System.out.println(i.name+" "+i.age);
        System.out.println(Arrays.toString(persons2));//返回数组内容的字符串表示形式
    }
}

class Person implements Comparable<Person>{
    public String name;
    public int age;
    Person(String name,int age){
        this.name = name;
        this.age = age;
    }
    @Override
    public int compareTo(Person o) { //比较器的比较方法
        //实现:定义对象之间的比较规则
        if(o==null){
            throw new NullPointerException();
        }
        //如果当前对象小于参数对象,返回-1
        //如果当前对象等于参数对象,返回0
        //如果当前对象大于参数对象,返回1
        if(this.age < o.age)
            return -1;
        else if(this.age < o.age)
            return 1;
        return 0;
    }
}

class Person2{
    public String name;
    public int age;
    Person2(String name,int age){
        this.name = name;
        this.age = age;
    }
}
class Person2Comparator implements Comparator<Person2>{
    @Override
    public int compare(Person2 o1, Person2 o2) {
       if(o1==null || o2==null)
           throw new NullPointerException();
       if(o1.age < o2.age)
           return -1;
       else if(o1.age > o2.age)
           return 1;
       return 0;
    }
}
时间: 2024-08-05 07:06:26

JAVA笔记10__Math类、Random类、Arrays类/日期操作类/对象比较器/的相关文章

Java入门——日期操作类

Java入门——日期操作类 Date类 是一个较为简单的操作类,使用java.util.Data类的构造方法并进行输出就可以得到一个完整的日期.构造方法为: public Data(); java.util包需要导入 package Sep26; import java.util.Date; public class DataDemo01 { public static void main(String[] args) { Date date=new Date(); System.out.pri

PHP日期操作类代码-农历-阳历转换、闰年、计算天数等

这是一个实用的PHP日期时间操作类,里面包括了公历-农历转换.转换成中文日期格式.计算农历相隔天数.根据阴历年获取生肖.获取阴历月份的天数.获取农历每年的天数.获取闰月.计算阴历日期与正月初一相隔的天数.计算2个公历(阳历)日期之间的天数.根据距离正月初一的天数计算阴历日期.获取天干地支纪年等,PHP日期操作类:Lunar.class.php代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Util应用程序框架公共操作类(十二):Lambda表达式公共操作类(三)

今天在开发一个简单查询时,发现我的Lambda操作类的GetValue方法无法正确获取枚举类型值,以至查询结果错误. 我增加了几个单元测试来捕获错误,代码如下. /// <summary> /// 测试值为枚举 /// </summary> [TestMethod] public void TestGetValue_Enum() { var test1 = new Test1(); test1.NullableEnumValue = LogType.Error; //属性为枚举,值

Java面向对象_常用类库api——日期操作类

Data类 类Data表示特定的瞬间,精确到毫秒,也就是程序运行时的当前时间 Data data=new Data();//实例化Data对象,表示当前时间 Calendar类 日历类,使用此类可以将时间精确到毫秒显示. //两种实例化方式 Calendar c=Calendar.getInstance();//Calendar类是抽象类,不能直接new Calendar c=new GregorianCalendar(); DateFormat类及子类SimpleDateFormat 例: 1

日期操作类--GregorianCalendar类

GregorianCalendar--API JavaTM Platform Standard Ed. 6 GregorianCalendar类 Calendar类实现了公历日历,GregorianCalendar是Calendar类的一个具体实现. Calendar 的getInstance()方法返回一个默认用当前的语言环境和时区初始化的GregorianCalendar对象.GregorianCalendar定义了两个字段:AD和BC.这些代表公历定义的两个时代. 下面列出Gregoria

JavaLearning:日期操作类

package org.fun.classdemo; import java.util.Calendar; import java.util.GregorianCalendar; public class DateTime { private Calendar calendar = new GregorianCalendar(); // 实例化Calendar对象 public String getDate() {// 2014-07-30 StringBuffer buf = new Stri

JS 日期操作类

/* 日期对象格式化为指定日期格式 */Date.prototype.format = function (format) { var o = { "M+": this.getMonth() + 1, //month "d+": this.getDate(), //day "h+": this.getHours(), //hour "m+": this.getMinutes(), //minute "s+"

8.Java5原子性操作类的应用

1 import java.util.concurrent.atomic.AtomicInteger; 2 /** 3 * java5原子性操作类的应用 4 * @author LiTaiQing 5 * 6 */ 7 public class AtomClassTest { 8 9 public static void main(String[] args) { 10 AtomicInteger i = new AtomicInteger(0); 11 System.out.println(i

设计模式 - 单例模式mysql数据库操作类

待续... index.php 调用方法: <?php header('Content-Type:text/html; charset=utf8'); require 'instance.php'; $db = MySQLDB::getInstance('127.0.0.1:3306', 'root', '123456', 'test'); $db->insertData(); instance.php 单例操作类: <?php /** * 单例模式MySQL数据库操作类 */ clas