guyanqing 1 year ago
parent
commit
db7bc7f9bc

+ 0 - 1
src/main/java/com/sf/day12/TestApi.java

@@ -250,6 +250,5 @@ public class TestApi {
         System.out.println(localDateTime.plusMinutes(2));
         System.out.println(localDateTime.plusSeconds(60));
 
-
     }
 }

+ 48 - 0
src/main/java/com/sf/day13/Goods.java

@@ -0,0 +1,48 @@
+package com.sf.day13;
+
+public class Goods implements Comparable{
+    private String name;
+    private int price;
+
+    public Goods() {
+    }
+
+    public Goods(String name, int price) {
+        this.name = name;
+        this.price = price;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getPrice() {
+        return price;
+    }
+
+    public void setPrice(int price) {
+        this.price = price;
+    }
+
+    @Override
+    public String toString() {
+        return "Goods{" +
+                "name='" + name + '\'' +
+                ", price=" + price +
+                '}';
+    }
+
+
+    @Override
+    public int compareTo(Object o) {
+        if(this.price!=((Goods) o).price){
+            return this.price - ((Goods) o).price;
+        } else {
+          return  this.name.compareTo(((Goods)o).name);
+        }
+    }
+}

+ 55 - 0
src/main/java/com/sf/day13/Student.java

@@ -0,0 +1,55 @@
+package com.sf.day13;
+
+
+
+public class Student implements  Comparable{
+    // 名字
+    private String name;
+    //分数
+    private int score;
+
+
+    public Student() {
+    }
+
+    public Student(String name, int score) {
+        this.name = name;
+        this.score = score;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getScore() {
+        return score;
+    }
+
+    public void setScore(int score) {
+        this.score = score;
+    }
+
+    @Override
+    public String toString() {
+        return "Student{" +
+                "name='" + name + '\'' +
+                ", score=" + score +
+                '}';
+    }
+
+    @Override
+    public int compareTo(Object obj) {
+        Student stu = null;
+        int i;
+        if(obj  instanceof   Student){
+             stu = (Student) obj;
+             i = this.score - stu.score;
+            return  i;
+        }
+        return  99;
+    }
+}

+ 18 - 0
src/main/java/com/sf/day13/StudentScoreComparator.java

@@ -0,0 +1,18 @@
+package com.sf.day13;
+
+import java.util.Comparator;
+
+public class StudentScoreComparator implements Comparator {
+
+    @Override
+    public int compare(Object o1, Object o2) {
+        Student stu1 = (Student) o1;
+        Student stu2 = (Student) o2;
+        if(stu1.getScore() > stu2.getScore() ){
+            return 1;
+        }else if (stu1.getScore() < stu2.getScore()){
+            return -1;
+        }
+        return 0;
+    }
+}

+ 67 - 0
src/main/java/com/sf/day13/System/Test.java

@@ -0,0 +1,67 @@
+package com.sf.day13.System;
+
+import java.util.Arrays;
+import java.util.Random;
+
+public class Test {
+    @org.junit.Test
+    public void t1(){
+        System.out.println(System.currentTimeMillis());
+//        System.exit(0);
+//        System.out.println("==========");
+        String property = System.getProperty("java.version");
+        System.out.println(property);
+        System.out.println(System.getProperty("java.home"));
+        System.out.println(System.getProperty("os.name"));
+        System.out.println(System.getProperty("os.version"));
+        System.out.println(System.getProperty("user.name"));
+        System.out.println(System.getProperty("user.home"));
+        System.out.println(System.getProperty("user.dir"));
+        int[] arr1 = {1,2,3,4,5};
+        int[] arr2 = new int[10];
+        System.arraycopy(arr1,0,arr2,3,arr1.length);
+        System.out.println(Arrays.toString(arr1));
+        System.out.println(Arrays.toString(arr2));
+    }
+
+
+    @org.junit.Test
+    public void t2(){
+        System.out.println(Math.abs(-5));  //绝对值
+        System.out.println(Math.abs(5));  //绝对值
+
+        //返回大于等于参数的最小整数
+        System.out.println(Math.ceil(3.3));  //4.0
+        System.out.println(Math.ceil(-3.3));  //-3.0
+        System.out.println(Math.ceil(3.9));   //4.0
+        //返回小于等于参数的最小整数
+        System.out.println(Math.floor(3.3));
+        System.out.println(Math.floor(-3.3));
+        System.out.println(Math.floor(3.9));
+
+        long d1 = Math.round(5.5); //d1的值为6
+        long d2 = Math.round(5.4); //d2的值为5
+        long d3 = Math.round(-3.3); //d3的值为-3
+        long d4 = Math.round(-3.8); //d4的值为-4
+        System.out.println(d1);
+        System.out.println(d2);
+        System.out.println(d3);
+        System.out.println(d4);
+
+        System.out.println(Math.sin(0));
+        System.out.println(Math.cos(0));
+        System.out.println(Math.sin(30));
+//        System.out.println(Math.tan());
+
+
+    }
+
+    @org.junit.Test
+    public void t3(){
+        Random random = new Random();
+        System.out.println(random.nextInt());
+        System.out.println(random.nextDouble());
+        System.out.println(random.nextLong());
+        System.out.println(random.nextBoolean());
+    }
+}

+ 65 - 0
src/main/java/com/sf/day13/Test01.java

@@ -0,0 +1,65 @@
+package com.sf.day13;
+
+import org.junit.Test;
+
+import java.util.Arrays;
+import java.util.Comparator;
+
+public class Test01 {
+
+    @Test
+    public  void t1() {
+        Student[] students =  new Student[3];
+        students[0] = new Student("lisa",67);
+        students[1] = new Student("zhangsan",90);
+        students[2] = new Student("zhangsan",19);
+        System.out.println(Arrays.toString(students));
+        Arrays.sort(students);
+        System.out.println(Arrays.toString(students));
+    }
+
+    @Test
+    public void t2(){
+        Goods[] all = new Goods[4];
+        all[0] = new Goods("《红楼梦》", 80);
+        all[1] = new Goods("《西游记》", 80);
+        all[2] = new Goods("《三国演》", 80);
+        all[3] = new Goods("《水浒传》", 120);
+        Arrays.sort(all);
+        System.out.println(Arrays.toString(all));
+    }
+
+    @Test
+    public void t3(){
+        Student[] students =  new Student[3];
+        students[0] = new Student("lisa",67);
+        students[1] = new Student("zhangsan",90);
+        students[2] = new Student("zhangsan",19);
+        StudentScoreComparator studentScoreComparator = new StudentScoreComparator();
+        Arrays.sort(students,studentScoreComparator);
+        System.out.println(Arrays.toString(students));
+    }
+
+    /**
+     * 1、Comparable    自然排序   重写 compareTo    进行比较
+     *      比较比较字符串(unicode码)     str. compareTo(str2)    为啥 因为string类已经重写compareTo
+     *  我们只要指定比较器    arrays.sort(数组);
+     *  为啥不需要   因为我们在student这个对象里面重写compareTo
+     *
+     * 2、Comparator 接口  自定义排序   compare()方法
+     *  需要定义一个类去重写这个方法
+     *  根据自己的定义规则
+     *  class1  implements  Comparator{
+     *        @Override
+     *     public int compare(Object o1, Object o2) {
+     *  }
+     *
+     *  为啥不能想第一种方式可以比较字符串?     string类没有实现compare这个方法      但是要是想比较可以在比较器里面自己定义
+     *      测试的时候:   我们只要指定比较器    arrays.sort(对象数组,指定的比较器);
+     *     这两种方式的场景:  多元素    有无字符串都可以
+     *     第一种:Comparable   通常比较(根据比较的优先级   ;例如属性A相等时在根据属性B进行比较...)
+     *     单元素     - - 没有字符串进行比较
+     *     第二种:Comparator   通常比较一种属性(如果属性值相等   根据在集合和数组的加入顺序进行处理)
+     */
+
+}

+ 55 - 0
src/main/java/com/sf/day13/comparableTest/Student.java

@@ -0,0 +1,55 @@
+package com.sf.day13.comparableTest;
+
+/**
+ * comparable
+ * 根据年龄进行比较   升序   年龄相同根据名称进行排序 unicode值
+ */
+public class Student implements Comparable{
+    private String name;
+    private int age;
+
+    public Student() {
+    }
+
+    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 String toString() {
+        return "Student{" +
+                "name='" + name + '\'' +
+                ", age=" + age +
+                '}';
+    }
+
+    @Override
+    public int compareTo(Object o) {
+        if(o instanceof Student){  //判断两个对象的数据类型是否相等
+            Student student = (Student) o;
+            if(this.age != student.age){
+                return this.age-student.age;
+            }else {
+                this.name.compareTo(student.name);
+            }
+        }
+        return 99;
+    }
+}

+ 18 - 0
src/main/java/com/sf/day13/comparableTest/Test01.java

@@ -0,0 +1,18 @@
+package com.sf.day13.comparableTest;
+
+import org.junit.Test;
+
+import java.util.Arrays;
+
+public class Test01 {
+    @Test
+    public void t1(){
+        Student[] students = new Student[3];
+        students[0] = new Student("lisa",60);
+        students[1] = new Student("zhangsan",18);
+        students[2] = new Student("wangwu",18);
+        System.out.println(Arrays.toString(students));
+        Arrays.sort(students);
+        System.out.println(Arrays.toString(students));
+    }
+}

+ 18 - 0
src/main/java/com/sf/day13/compareTest/CompareTest.java

@@ -0,0 +1,18 @@
+package com.sf.day13.compareTest;
+
+import org.junit.Test;
+
+import java.util.Arrays;
+
+public class CompareTest {
+    @Test
+    public void t1(){
+    Worker[] workers = new Worker[3];
+    workers[0] = new Worker(1);
+    workers[1] = new Worker(3);
+    workers[2] = new Worker(2);
+        System.out.println(Arrays.toString(workers));
+        Arrays.sort(workers,new MyCompare());
+        System.out.println(Arrays.toString(workers));
+    }
+}

+ 12 - 0
src/main/java/com/sf/day13/compareTest/MyCompare.java

@@ -0,0 +1,12 @@
+package com.sf.day13.compareTest;
+
+import java.util.Comparator;
+
+public class MyCompare implements Comparator {
+    @Override
+    public int compare(Object o1, Object o2) {
+        Worker worker1 = (Worker) o1;
+        Worker worker2 = (Worker) o2;
+        return worker1.getId()- worker2.getId();
+    }
+}

+ 32 - 0
src/main/java/com/sf/day13/compareTest/Worker.java

@@ -0,0 +1,32 @@
+package com.sf.day13.compareTest;
+
+import java.util.Comparator;
+
+/**
+ * 通过comparator接口进行比较
+ */
+public class Worker {
+    private int id;
+
+    public Worker() {
+    }
+
+    public Worker(int id) {
+        this.id = id;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    @Override
+    public String toString() {
+        return "Worker{" +
+                "id=" + id +
+                '}';
+    }
+}

BIN
target/classes/com/sf/day12/TestApi$1.class


BIN
target/classes/com/sf/day12/TestApi.class


BIN
target/classes/com/sf/day13/Goods.class


BIN
target/classes/com/sf/day13/Student.class


BIN
target/classes/com/sf/day13/StudentScoreComparator.class


BIN
target/classes/com/sf/day13/System/Test.class


BIN
target/classes/com/sf/day13/Test01.class


BIN
target/classes/com/sf/day13/comparableTest/Student.class


BIN
target/classes/com/sf/day13/comparableTest/Test01.class


BIN
target/classes/com/sf/day13/compareTest/CompareTest.class


BIN
target/classes/com/sf/day13/compareTest/MyCompare.class


BIN
target/classes/com/sf/day13/compareTest/Worker.class