Di Java, terdapat satu set struktur data sedia, seperti senarai jujukan, senarai terpaut, baris gilir, tindanan, baris gilir keutamaan, jadual cincang, dsb., yang dirangkumkan ke dalam antara muka/kelas yang sepadan untuk pengaturcara untuk terus Untuk menggunakannya, anda hanya perlu mencipta objek yang berkaitan untuk menggunakannya, tanpa perlu melaksanakan struktur dalaman mereka.
Kutipan ialah struktur data yang menyimpan dan mengurus berbilang elemen, di mana elemen ini diletakkan dalam satu unit dan boleh diproses melalui operasi seperti penambahan, pemadaman, pengubahsuaian dan pertanyaan. Contohnya, satu set kad permainan (kumpulan kad), buku alamat (satu set hubungan pemetaan antara nama dan nombor telefon), dsb. boleh digunakan sebagai contoh.
Gambar di bawah sangat penting! ! ! Anda perlu ingat antara muka dan kelas yang biasa digunakan! !
Oleh kerana antara muka peta tidak melaksanakan antara muka Iterable, bagaimana untuk melaksanakannya untuk melintasi elemen?
Map<Integer,String> map = new HashMap(); map.put(1,"jack"); map.put(2,"tom"); Set<Map.Entry<Integer, String>> entries = map.entrySet(); // 使用迭代器进行遍历 ,增强 for同理 Iterator<Map.Entry<Integer, String>> iterator = entries.iterator(); while (iterator.hasNext()) { Map.Entry<Integer, String> entry = iterator.next(); System.out.println(entry.getKey() + " " + entry.getValue()); }
Mengambil HashMap sebagai contoh, anda boleh memanggil kaedah entrySet() untuk merangkum setiap
Perhubungan asas (versi ringkas)
diterima umum oleh antara muka atau kelas yang melaksanakan antara muka Koleksi. Laksanakan secara khusus objek kelas, kerana seperti yang dapat dilihat dari rajah di atas, antara muka Koleksi ialah antara muka induk bagi satu siri antara muka dan kelas Ia mempunyai sedikit kaedah yang dilaksanakan secara dalaman, jadi ia tidak boleh memanggil beberapa kaedah biasa subkelas .
Nota: Jenis yang dihantar di sini hanya boleh menjadi jenis rujukan Jika ia adalah jenis data asas, kelas pembalutnya digunakan. Nyatakan
Collection<String> collection1 = new ArrayList(); collection1.add("haha"); collection1.add("world"); Collection<Integer> collection2 = new ArrayList(); collection2.add(1); collection2.add(2); //collection2.add("hh");// 这里会报错,不符合传入的指定类型Integer
方法 | 作用 |
---|---|
void clear() | 删除集合中的所有元素 |
boolean isEmpty() | 判断集合是否没有任何元素,俗称空集合 |
boolean remove(Object e) | 如果元素 e 出现在集合中,删除其中一个 |
boolean add(E e) | 将元素 e 放入集合中 |
int size() | 返回集合中的元素个数 |
Object[] toArray() | 返回一个装有所有集合中元素的数组 |
Nota: Dalam kaedah Object[] toArray() terakhir, tatasusunan jenis Object[] dikembalikan, pendekatan asas Ya: Keluarkan elemen dalam koleksi satu demi satu, tukarkannya menjadi objek Objek, simpannya dalam tatasusunan untuk dikembalikan, dan akhirnya kembalikan tatasusunan jenis Objek[]. Pengecualian penukaran jenis dilemparkan apabila menukar kepada tatasusunan String[].
Oleh kerana tiada jaminan bahawa setiap elemen dalam tatasusunan ditukar kepada String, tetapi ia hanya dipaksa untuk ditukar secara keseluruhan kepada tatasusunan jenis String[] , jadi jika anda perlu Untuk menukar, anda perlu terlebih dahulu merentasi hasil yang dikembalikan, menukarnya kepada jenis String satu demi satu, dan akhirnya menetapkannya kepada tatasusunan jenis String[]. Ia tidak disyorkan untuk menukar jenis tatasusunan secara keseluruhan di Jawa.
Object[] objects = collection1.toArray(); String[] strings = new String[objects.length]; for (int i = 0; i < objects.length; i++) { strings[i] = (String)objects[i];// 一个一个转,但是没啥必要 }
menyimpan data dalam bentuk < k, v > Nilai nilai yang sepadan. Nilai kunci yang berbeza boleh sepadan dengan nilai yang sama. HashMap: Apabila menyimpan elemen, fungsi hashCode dalaman dipanggil berdasarkan nilai utamanya untuk mencari lokasi di mana elemen harus diletakkan Oleh itu, elemen dalam jadual hash tidak disimpan dalam susunan ia disimpan.
方法 | 作用 |
---|---|
V get(Object k) | 根据指定k查找对应v |
V getOrDefault(Object k, V defaultValue) | 根据指定的 k 查找对应的 v,没有找到则返回默认值 |
V put(K key, V value) | 将指定的 k-v 放入 Map |
boolean containsKey(Object key) | 判断是否包含 key |
boolean containsValue(Object value) | 判断是否包含 value |
Set | 将所有键值对返回 |
boolean isEmpty() | 判断是否为空 |
int size() | 返回键值对的数量 |
HashMap<Integer, String> map = new HashMap<>(); // put() map.put(1,"张飞");// 这里的 key 值唯一 map.put(1,"宋江");// 如果二次插入的 key 值之前有,则替换其 value值 map.put(2,"Jack"); System.out.println(map); // get() String s1 = map.get(1);// 返回 宋江 String s3 = map.getOrDefault(3,"三团");// 未找到,返回 三团 // entrySet() // 该方法返回一个 Set<Map.Entry<Integer, String>> 对象 Set<Map.Entry<Integer, String>> entries = map.entrySet(); for (Map.Entry<Integer, String> entry : entries) { // 通过 entry.getKey() 和 entry.getValue() 获取每个entry对应的 k, v值 System.out.println(entry.getKey() + " " + entry.getValue()); }
Atas ialah kandungan terperinci Apakah struktur data rangka kerja pengumpulan Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!