/**
* 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;
}
}
/**
* 对象的克隆:将一个对象复制一份(克隆要比new效率高)
* 一个类要想实现克隆功能,必须:
* 1.实现Cloneable接口,该接口必须是一个标记接口
* 2.重写Obejct类中的Clone方法
*/
public class Main {
public static void main(String[] args) {
Cat c1 = new Cat("a",10);
System.out.println("c1="+c1);
try{
Cat c2 = (Cat)c1.clone();
System.out.println("c2="+c2);
}catch(CloneNotSupportedException e){
e.printStackTrace();
}
}
} class Cat implements Cloneable{
private String name;
private int age; public Cat(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 String toString() {
return "Cat{" + "name=" + name + ", age=" + age + '}';
}
@Override
//重写Obejct的Clone方法
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
/**
* 二叉树
*/
public class Main {
public static void main(String[] args) {
BinaryTree t1 = new BinaryTree();
t1.add(8);
t1.add(9);
t1.add(3);
t1.add(4);
t1.print();
}
} class BinaryTree{
private Node root; public void add(int data){
if(root==null){
root = new Node(data);
}else{
root.addNode(data);
}
}
public void print(){
if(root!=null){
root.printNode();
}else{
System.out.println("NULL");
}
} class Node{
private int data;
private Node left;
private Node right;
public Node(int data){
this.data = data;
}
public void addNode(int data){
if(data <= this.data){
if(this.left==null){
this.left = new Node(data);
}else{
this.left.addNode(data);
}
}else{
if(this.right==null){
this.right = new Node(data);
}else{
this.right.addNode(data);
}
}
}
public void printNode(){
System.out.println(this.data);
if(this.left!=null)
this.left.printNode();
if(this.right!=null)
this.right.printNode();
}
}
}

JAVA笔记10__Math类、Random类、Arrays类/日期操作类/对象比较器/对象的克隆/二叉树的更多相关文章

  1. 菜鸡的Java笔记 日期操作类

    日期操作类        Date 类与 long 数据类型的转换        SimpleDateFormat 类的使用        Calendar 类的使用                如 ...

  2. 使用日期操作类(Calendar)获得几秒、几分钟、几小时之前的时间

    public String dealDate(String case_time){ // 日期操作类 Calendar calendar = Calendar.getInstance(); // 当前 ...

  3. Java笔记:与系统交互、系统相关的类,Object类

    1.程序与用户交互 (1)运行一个Java程序的时候要给它提供一个main方法入口,这边分析一下这个main方法的签名public static void main(String[] args);pu ...

  4. java编程--04比较几个常用的日期时间相关类的区别

    第一篇,介绍日期的比较 第二篇,介绍日期的格式化 第三篇,介绍关于日期常用的计算 第四篇,比较几个常用的日期时间相关类的区别 第五篇,jdk9对日期类进行了更新,写一些i自己的学习心得. 下面以一组思 ...

  5. 日期操作类--SimpleDateFormat类

    使用SimpleDateFormat格式化日期 SimpleDateFormat是一个以语言环境敏感的方式来格式化和分析日期的类.SimpleDateFormat允许你选择任何用户自定义日期时间格式来 ...

  6. 日期操作类--DateFormat类

    简单的DateFormat格式化编码 时间模式字符串用来指定时间格式.在此模式中,所有的ASCII字母被保留为模式字母,定义如下: 字母 描述 示例 G 纪元标记 AD y 四位年份 2001 M 月 ...

  7. 日期操作类--Date类

    Date-API ava.util包提供了Date类来封装当前的日期和时间.Date类提供两个构造函数来实例化Date对象.第一个构造函数使用当前日期和时间来初始化对象. Date( ) 第二个构造函 ...

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

    今天在开发一个简单查询时,发现我的Lambda操作类的GetValue方法无法正确获取枚举类型值,以至查询结果错误. 我增加了几个单元测试来捕获错误,代码如下. /// <summary> ...

  9. JavaLearning:日期操作类

    package org.fun.classdemo; import java.util.Calendar; import java.util.GregorianCalendar; public cla ...

随机推荐

  1. Elasticsearch(ES)的滚动搜索与批量操作

    1. 概述 今天我们来聊一下Elasticsearch(ES)的滚动搜索与批量操作. 2. Elasticsearch(ES)的滚动搜索 2.1 概述  滚动搜索我们经常能够用到,例如:推荐列表,此类 ...

  2. final关键字在PHP中的使用

    final关键字的使用非常简单,在PHP中的最主要作用是定义不可重写的方法.什么叫不可重写的方法呢?就是子类继承后也不能重新再定义这个同名的方法. class A { final function t ...

  3. TP5开启缓存

    https://www.kancloud.cn/manual/thinkphp5/215850 V5.0.6+版本开始,全局请求缓存支持设置排除规则,使用方法如下:config.php文件 'requ ...

  4. Linux系列(14) - grep

    简述 grep是在文件当中匹配符合条件的字符串,作用是查找文件内容 格式 grep [选项] 字符串 文件名 选项 -i:忽略大小写 -v:排除指定字符串 -n:显示行号 例子 grep " ...

  5. P7443-加边【博弈论】

    正题 题目链接:https://www.luogu.com.cn/problem/P7443?contestId=41429 题目大意 \(n\)个点的一棵有根树,两个人从一号点开始进行有向图博弈. ...

  6. C++ 多线程按顺序执行函数

    我们提供了一个类: public class Foo { public void first() { print("first"); } public void second() ...

  7. FastAPI(56)- 使用 Websocket 打造一个迷你聊天室

    背景 在实际项目中,可能会通过前端框架使用 WebSocket 和后端进行通信 这里就来详细讲解下 FastAPI 是如何操作 WebSocket 的 模拟 WebSocket 客户端 #!usr/b ...

  8. a标签的href属性拼接问题

    <a id="nickName" href="/community/user/userinfo?nickName="></a> 如上所示 ...

  9. Java 使用 Socket 实现客户端和服务器的信息交互

    服务器 public class Server{ private ServerSocket serverSocket; private Socket socket; private BufferedR ...

  10. video 适配通屏展示、针对不同分辨率 禁止变形处理

    CSS object-fit 属性 object-fit: fill|contain|cover|scale-down|none|initial|inherit; 样式上 video{ height: ...