Rumah > Java > javaTutorial > Apakah Setara Java bagi `Pair` C dan Mengapa Tiada Analog Langsung?

Apakah Setara Java bagi `Pair` C dan Mengapa Tiada Analog Langsung?

Mary-Kate Olsen
Lepaskan: 2024-12-19 17:30:14
asal
887 orang telah melayarinya

What's the Java Equivalent of C  's `Pair` and Why Isn't There a Direct Analogue?

Java Setara dengan C Pair

Soalan:

Walaupun Java mempunyai Map.Entry dalam 1.6, ia tidak mempunyai setara langsung C 's Pair. Apakah sebab di sebalik ketiadaan ini, dan apakah pendekatan alternatif yang sesuai di Jawa?

Jawapan:

Sebab Ketidakhadiran:

Hunter Gratzner, dalam urutan comp.lang.java.help, mengemukakan hujah menentang memperkenalkan binaan Pasangan di Jawa. Kebimbangan utama ialah kelas Pair tidak mempunyai semantik yang jelas tentang hubungan antara dua nilainya. Tanpa penamaan khusus, tidak jelas apa yang diwakili oleh nilai "pertama" dan "kedua", menjadikan pemahaman tentang maksud kod lebih mencabar.

Alternatif yang Sesuai:

Yang disyorkan pendekatan adalah untuk mencipta kelas yang mudah dan khusus untuk setiap kes penggunaan yang dimaksudkan. Sebagai contoh, bukannya Pair(x,y), kelas yang lebih deskriptif seperti Position(x,y) menyampaikan perhubungan antara dua nilai dengan lebih jelas. Begitu juga, untuk Julat(mula,akhir) dan Kemasukan(kunci,nilai).

Map.Entry sebagai Setara Terhad:

Manakala Map.Entry menyediakan pasangan -seperti fungsi, ia khusus untuk pemetaan nilai kunci, mengehadkan tujuan amnya kebolehgunaan.

Kesimpulan:

Daripada menggunakan kelas Pair generik, Java menggalakkan penciptaan kelas khusus dan bermakna yang menyampaikan penggunaan yang dimaksudkan secara eksplisit. Pendekatan ini meningkatkan kebolehbacaan dan pemahaman kod, sambil mengelakkan kekaburan semantik yang dikaitkan dengan jenis Pasangan generik.

Atas ialah kandungan terperinci Apakah Setara Java bagi `Pair` C dan Mengapa Tiada Analog Langsung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan