Javaの他のクラスの一般的に使用される3つのクラス(インターフェース)

1、同等またはコンパレータ


通常の状況下では、バックグラウンドJavaでオブジェクトを使用して、比較できるのは==または!=。あなたは使用することはできません>または<された
実際の開発シナリオでは、我々はあなたがオブジェクトのサイズを比較する必要がある、という意味、複数のオブジェクトをソートする必要がありますが、
どのように達成するために?2つのインターフェースのいずれかを使用:比較可能または比較

1.1 Comparableインターフェースの使用例:自然順序付け

1.ラッパーなどの文字列と同様に、同等のインターフェースを実装し、compareTo()メソッドを書き換えて、2つのオブジェクトのサイズを比較します。

2. compareTo()メソッドのルールを書き換えます。
現在のオブジェクトが仮パラメーターオブジェクトobjよりも大きい場合、正の整数
が返され
ます。 0を返します

3.文字列やラッパーのようにcompareTo()を書き換えた後、小さなものから大きなものへとソートされます

4.カスタムクラスの場合、並べ替えが必要な場合は、カスタムクラスにComparableインターフェースを実装させ、compareTo()メソッドをオーバーライドし、compareTo()メソッドでの並べ替え方法を指定できます。

public class Goods implements Comparable {
    private String name;
    private double price;
    //省略了 getter setter 构造器  toString方法	
    //重写了compareTo()方法
     @Override
    public int compareTo(Object o) {
        if (o instanceof Goods) {
            Goods goods = (Goods) o;
            if (this.price > goods.price) {
                return 1;
            } else if (this.price < goods.price) {
                return -1;
            } else {
//                return 0;
                return -this.name.compareTo(goods.name);
            }
            //方法二
//           return Double.compare(this.price,goods.price)
        }
//        return 0;
        throw  new RuntimeException("传入的数据类型不一致");
    }
    }
   Goods[] arr = new Goods[5];
        arr[0] = new Goods("lenovoMouse", 46);
        arr[1] = new Goods("xiaomiMouse", 12);
        arr[2] = new Goods("dellMouse", 35);
        arr[3] = new Goods("huaweiMouse", 65);
        arr[4] = new Goods("MicrosoftMouse", 35);

        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
1.2、コンパレータインターフェースの使用、カスタムソート

1.背景
要素のタイプがjava.lang.Comparableインターフェースを実装せず、コードを変更するのが不便な場合、
またはjava.lang.Comparableインターフェースのソート規則が現在の操作に適していない場合は
、Comparatorオブジェクトを実装してソートすることを検討してください
。2.書き換えcompara(Object o1、Object o2)メソッドは、o1とo2のサイズを比較します。
正の整数が返される場合、それはo1がo2より大きい
ことを意味します。0を返す場合、それは等しいことを意味します。
負の整数返されます。つまり、o1がoより小さいことを意味します。

        String[] arr = new String[]{"AA", "CC", "JJ", "MM", "DD", "KK"};
       Arrays.sort(arr, new Comparator<String>() {
           //按照字符串从大到小的排序
           @Override
           public int compare(String o1, String o2) {
               if ( o1 instanceof String && o2 instanceof String){
                   String s1 = (String) o1;
                   String s2 = (String) o2;
                   return -s1.compareTo(s2);
               }
//                return 0;
               throw new RuntimeException("输入的数据类型不一致");
           }
       });
       Arrays.sort(arr);
       System.out.println(Arrays.toString(arr));

2.他の一般的に使用されるクラスの使用

2.1、システム

①システムは、プログラムが配置されているシステムを表し、対応するシステム属性情報とシステム操作を提供します。コンストラクターはプライベートで装飾されているため、Systemクラスは手動でオブジェクトを作成できません。外部からオブジェクトを作成できません。Systemクラスのすべてのメソッドは静的メソッドであり、クラス名にアクセスできます。
②一般的な方法
1.システムの現在のミリ秒の値を取得します(public static long currentTimeMillis())

現在のシステム時刻と1970年1月1日00:00の前のミリ秒との差を取得します。これを使用して、プログラムの実行時間をテストできます。

public static void main(String[] args) {
     long start = System.currentTimeMillis();
    for (int i=0; i<10000; i++) {
         System.out.println(i);
}
long end = System.currentTimeMillis();
System.out.println("共耗时毫秒:" + (end-start) );
}

2.実行中のJavaプログラムを終了します(public staitc void exit(int status))

パラメータは数値で渡すことができます。通常、着信0は正常な状態として記録され、もう1つは異常な状態です。

3.ガベージコレクター(public static void gc())

メモリ内のガベージの削除を完了するために、JVMでガベージコレクタを実行するために使用されます。

4.現在のシステムプロパティを決定します(public static getProperties getProperties())
System.out.println(System.getProperties());

2、数学

①JavaのMathクラスは、一般的に使用される数学演算をカプセル化し、指数関数、対数関数、平方根、三角関数などの基本的な数学演算を提供します。Mathクラスはjava.langパッケージにあり、そのコンストラクターはプライベートであるため、Mathクラスのオブジェクトを作成することはできません。Mathクラスのすべてのメソッドはクラスメソッドであり、クラス名で直接呼び出すことができます。

②メソッド
Math.absは絶対値を
求めますMath.sin正弦関数Math.asin逆正弦関数
Math.cos余弦関数Math.acos逆余弦関数
Math.tan正接関数Math.atan逆正接関数Math.atan2逆正接関数
MathラジアンにMath.toRadians角度に.toDegreesラジアン単位の角度は、
整数最大一定数Math.ceil以上取得
Math.floorが整数最大の一定数未満得る
Math.IEEEremainder残りの
二つの数字の最大検索Math.max
数学。分2つの数の最小シーク
Math.sqrt要件は規定
オーバフロー例外の処理数のMath.pow任意の電力需要がスローさはArithmeticException
Math.expの任意の電力需要がE
Math.log10ベース10対数
数学。対数自然対数
Math.PIで記録されたpi
Math.Eで記録された定数e
Mathにも同様の定数があり、工学数学で一般的に使用される量です。
Math.rintは最も近い整数を検索します(特定の数値よりも大きい場合も小さい場合もあります)
Math.round上記と同様に、intまたはlongを返します(前の関数はdoubleを返します)
Math.randomは0、1を返します乱数

使用例:
double s = Math.sqrt(5);
double x = Math.pow(2,4)// 2の4乗を計算する

3、BigIntegerとBigDecimal

このクラスのコンテンツを表示できます:https://blog.csdn.net/qq997404392/article/details/78085783
Javaの整数型では、バイトは8ビット、短いは16ビット、intは32ビット、長いは64ビットです。これらの値の2進数は固定されているため、それらが表すことができる値のサイズには、特定の範囲制限があります。したがって、JavaはBigIntegerクラスとBigDecimalクラスを提供して、より大きな数を処理します。

Java-String、StringBuffer、StringBuilderで一般的に使用されるクラスの1つ

https://blog.csdn.net/weixin_43244120/article/details/105187804

Javaの一般的に使用されるクラス2日付時刻クラス

https://blog.csdn.net/weixin_43244120/article/details/105188644

元の記事を19件公開しました 賞賛されました0 アクセス数487

おすすめ

転載: blog.csdn.net/weixin_43244120/article/details/105189069