Rumah  >  Artikel  >  Java  >  Perbandingan prestasi perbandingan fungsi Java

Perbandingan prestasi perbandingan fungsi Java

WBOY
WBOYasal
2024-04-20 13:03:01863semak imbas

Perbandingan prestasi fungsi perbandingan Java yang berbeza: equals() mengambil masa yang paling lama. compareTo() dan compare() mempunyai prestasi yang serupa dan kedua-duanya lebih baik daripada equals().

Perbandingan prestasi perbandingan fungsi Java

Perbandingan prestasi perbandingan fungsi Java

Dalam pembangunan Java, adalah perlu untuk mengoptimumkan prestasi kod. Fungsi perbandingan ialah salah satu operasi biasa dalam kod, dan memilih fungsi perbandingan yang sesuai adalah penting untuk meningkatkan kecekapan. Artikel ini akan membandingkan fungsi perbandingan Java yang berbeza dan memberikan contoh praktikal untuk menggambarkan perbezaan prestasi mereka.

Fungsi perbandingan

Java menyediakan pelbagai fungsi perbandingan, termasuk:

  • equals(): Membandingkan sama ada dua objek adalah sama.
  • equals():比较两个对象是否相等。
  • compareTo():比较两个对象的大小顺序。
  • compare():返回比较两个对象结果的整数。

性能比较

为了比较这些函数的性能,我们创建了以下代码段:

List<Integer> numbers = new ArrayList<>();
for (int i = 0; i < 1000000; i++) {
    numbers.add(i);
}

// 使用 equals() 比较
long startTime = System.currentTimeMillis();
for (int i = 0; i < numbers.size() - 1; i++) {
    numbers.get(i).equals(numbers.get(i + 1));
}
long endTime = System.currentTimeMillis();
System.out.println("equals() 比较耗时:" + (endTime - startTime) + "ms");

// 使用 compareTo() 比较
startTime = System.currentTimeMillis();
for (int i = 0; i < numbers.size() - 1; i++) {
    numbers.get(i).compareTo(numbers.get(i + 1));
}
endTime = System.currentTimeMillis();
System.out.println("compareTo() 比较耗时:" + (endTime - startTime) + "ms");

// 使用 compare() 比较
startTime = System.currentTimeMillis();
for (int i = 0; i < numbers.size() - 1; i++) {
    Integer.compare(numbers.get(i), numbers.get(i + 1));
}
endTime = System.currentTimeMillis();
System.out.println("compare() 比较耗时:" + (endTime - startTime) + "ms");

实战案例

上面的代码段在一个包含 100 万个整数的列表上比较了 equals(), compareTo()compare() 函数。运行结果如下:

equals() 比较耗时:13111ms
compareTo() 比较耗时:1093ms
compare() 比较耗时:1112ms

从这些结果可以看出,compareTo()compare() 比较在性能上明显优于 equals()compareTo(): Bandingkan susunan saiz dua objek.

compare(): Mengembalikan hasil integer untuk membandingkan dua objek. 🎜🎜Perbandingan Prestasi🎜🎜🎜Untuk membandingkan prestasi fungsi ini, kami mencipta coretan kod berikut: 🎜rrreee🎜🎜Kes Praktikal🎜🎜🎜Coretan kod di atas yang mengandungi 1 juta berfungsi pada tatasusunan integer. Fungsi equals(), compareTo() dan compare() dalam senarai. Keputusan yang dijalankan adalah seperti berikut: 🎜rrreee🎜Dapat dilihat daripada keputusan ini bahawa prestasi compareTo() dan compare() adalah jauh lebih baik daripada sama dengan () code> perbandingan. 🎜

Atas ialah kandungan terperinci Perbandingan prestasi perbandingan fungsi Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn