java中HashMap和LinkedHashMap的區(qū)別
Nov 18, 2019 pm 02:19 PMHashMap
hashMap是最常用的Map,根據(jù)鍵的HashCode值存儲(chǔ)數(shù)據(jù),可以根據(jù)鍵直接獲取它的值,具有很快的訪問(wèn)速度,遍歷時(shí)候的順序是完全隨機(jī)的。HashMap只允許一個(gè)鍵為Null,允許多個(gè)值為Null。
特性: 完全隨機(jī)
優(yōu)點(diǎn): 隨機(jī)訪問(wèn),取值速度快
缺點(diǎn): 多個(gè)線程同時(shí)寫HashMap可能導(dǎo)致數(shù)據(jù)不一致,如果需要同步,使用Collection的synchronizedMap
方法或者使用ConcurrentHashMap
LinkedHashMap
LinkedHashMap是HashMap的一個(gè)子類,保存了記錄的插入順序,與HashMap的隨機(jī)遍歷不同,在用Iterator遍歷的時(shí)候,先得到的記錄肯定是先插入的,類似于python中的OrderedDict。
遍歷速度會(huì)比HashMap慢,不過(guò)有一種情況例外: 當(dāng)HashMap的容量很大,實(shí)際數(shù)據(jù)很少時(shí) , 因?yàn)镠ashMap的遍歷速度和它的容量有關(guān),而LinkedHashMap只跟實(shí)際數(shù)據(jù)量有關(guān)。
TreeMap
TreeMap實(shí)現(xiàn)SortMap接口,能夠?qū)⑺4娴挠涗洶存I排序,默認(rèn)是按鍵的升序排列,也可以指定排序的比較器,遍歷TreeMap的時(shí)候,得到的記錄是按照鍵排過(guò)序的。
根據(jù)數(shù)據(jù)選擇Map
一般情況下,我們用的最多的是HashMap,在Map中插入、刪除和定位元素,HashMap 是最好的選擇。但如果您要按自然順序或自定義順序遍歷鍵,那么TreeMap會(huì)更好。如果需要輸出的順序和輸入的相同,那么用LinkedHashMap可以實(shí)現(xiàn),它還可以按讀取順序來(lái)排列。
推薦教程:Java教程
Atas ialah kandungan terperinci java中HashMap和LinkedHashMap的區(qū)別. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Fail Tetapan.JSON terletak di laluan peringkat pengguna atau ruang kerja dan digunakan untuk menyesuaikan tetapan vscode. 1. Laluan peringkat pengguna: Windows adalah C: \ Users \\ AppData \ Roaming \ code \ user \ settings.json, macOS adalah /users//library/applicationsupport/code/user/settings.json, linux adalah/ 2. Laluan Tahap Ruang Kerja: .VSCODE/Tetapan dalam Direktori Root Projek

Untuk mengendalikan transaksi JDBC dengan betul, anda mesti terlebih dahulu mematikan mod komit automatik, kemudian melakukan pelbagai operasi, dan akhirnya melakukan atau mengembalikan semula hasilnya; 1. Panggil Conn.SetAutOcommit (palsu) untuk memulakan transaksi; 2. Melaksanakan pelbagai operasi SQL, seperti memasukkan dan mengemaskini; 3. Panggil Conn.Commit () jika semua operasi berjaya, dan hubungi conn.rollback () jika pengecualian berlaku untuk memastikan konsistensi data; Pada masa yang sama, cuba-dengan-sumber harus digunakan untuk menguruskan sumber, mengendalikan pengecualian dengan betul dan menutup sambungan untuk mengelakkan kebocoran sambungan; Di samping itu, adalah disyorkan untuk menggunakan kolam sambungan dan menetapkan mata simpan untuk mencapai rollback separa, dan menyimpan urus niaga sesingkat mungkin untuk meningkatkan prestasi.

DependencyInjection (DI) isadesignpatternwhereBjectsReceivedependencys ke luar, promotingloosecouplingandeasieSierTestthroughconstructor, setter, orfieldInjection.2.springframeworkusesannotationsike@component,@service, dan@autowwithjava yang berasaskan@autowwithjava

iTertools.Combinations digunakan untuk menjana semua kombinasi yang tidak berulang (perintah tidak relevan) yang memilih bilangan elemen tertentu dari objek Itable. Penggunaannya termasuk: 1. Pilih 2 kombinasi elemen dari senarai, seperti ('a', 'b'), ('a', 'c'), dan sebagainya, untuk mengelakkan perintah berulang; 2. Ambil 3 kombinasi watak rentetan, seperti "ABC" dan "ABD", yang sesuai untuk penjanaan berikutnya; 3. Cari kombinasi di mana jumlah dua nombor adalah sama dengan nilai sasaran, seperti 1 5 = 6, memudahkan logik gelung berganda; Perbezaan antara kombinasi dan susunan terletak pada sama ada perintah itu penting, kombinasi menganggap Ab dan BA sebagai sama, sementara permutasi dianggap berbeza;

Terdapat empat cara utama untuk mendapatkan BTC: 1. Daftar dan tukar dengan mata wang fiat atau aset digital lain melalui platform perdagangan berpusat seperti Binance, OK, Huobi, dan Gate.io; 2. Mengambil bahagian dalam platform P2P untuk secara langsung berdagang dengan individu, dan memberi perhatian kepada risiko kredit rakan niaga; 3. Memberi barangan atau perkhidmatan untuk menerima BTC sebagai pembayaran; 4. Mengambil bahagian dalam udara, pertandingan dan aktiviti ganjaran platform lain untuk mendapatkan sedikit BTC. Perbezaan teras antara BTC dan mata wang digital adalah: 1. BTC adalah sejenis mata wang digital, yang dimiliki oleh hubungan genus; 2. BTC mengamalkan mekanisme Bukti Kerja (POW), manakala mata wang digital lain boleh menggunakan pelbagai teknologi seperti Bukti Stake (POS); 3. BTC menekankan fungsi penyimpanan nilai "emas digital", dan mata wang digital lain boleh memberi tumpuan kepada kecekapan pembayaran atau

THEJVMenableSjava's "Writeonce, Runanywhere" keupayaanByExecutingByteCodeThroughFourMaincomponents: 1.TheClassloadersubsystemloads, pautan, danInitializes.ClassFilesusingBootstrap, Extension, andapplicationClassloaders, EnsuringseCureAndlazyCon

Gunakan kelas dalam pakej Java.Time untuk menggantikan kelas lama dan kelas kalendar; 2. Dapatkan tarikh dan masa semasa melalui LocalDate, LocalDateTime dan Tempatan Tempatan; 3. Buat tarikh dan masa tertentu menggunakan kaedah (); 4. Gunakan kaedah tambah/tolak untuk meningkatkan dan mengurangkan masa; 5. Gunakan zoneddatetime dan zonid untuk memproses zon waktu; 6. Format dan parse date string melalui DateTimeFormatter; 7. Gunakan segera untuk bersesuaian dengan jenis tarikh lama apabila perlu; pemprosesan tarikh di java moden harus memberi keutamaan untuk menggunakan java.timeapi, yang memberikan jelas, tidak berubah dan linear

Perbezaan antara kriptografi dan stok terletak pada sifat aset, mekanisme pasaran dan ciri-ciri pulangan risiko. 1. Stok mewakili pemilikan korporat, nilai berdasarkan keuntungan dan dividen, masa yang dikawal selia dan perdagangan adalah terhad, dengan pulangan tahunan kira-kira 10%, sesuai untuk pelabur jangka sederhana dan jangka panjang; 2. Cryptocurrency bergantung kepada konsensus pasaran dan aplikasi teknologi, dengan perdagangan 24 jam, tiada had turun naik, dan turun naik adalah teruk. Pulangan tahunan purata sejarah Bitcoin mencapai 46.6%, tetapi pengunduran sering lebih daripada 80%, yang lebih tinggi; 3. Pelabur konservatif harus memperuntukkan 70-80% saham 20-30% pelaburan tetap cryptocurrency, dan radikal boleh melabur dalam aset crypto terutamanya dan menggunakan alat stablecoins dan AI untuk melindung nilai risiko; 4. Strategi yang optimum pada tahun 2025 adalah untuk membina gabungan "balast saham (70%) komando cryptocurrency (30%)".
