KodeGym/Blog Jawa/Acak/Kelas Koleksi ing Jawa
John Squirrels
tingkat
San Francisco

Kelas Koleksi ing Jawa

Diterbitake ing grup
Hi! Ing sawetara pawulangan kepungkur, kita wis nggawe kemajuan gedhe ing penguasaan kita ArrayList. Nanging, nganti saiki kita mung nindakake operasi sing paling gampang: mbusak, masang, lan nampilake. Mesthine, iki ora nyakup dhaptar lengkap tugas sing kudu ditindakake pangembang nalika nggarap ArrayList. Elinga pawulangan babagan array lan Arrayskelas? Pangripta Java khusus ngrancang kelas iki kanggo nangani tugas paling umum sing diadhepi programer nalika nggarap array. Lan apa babArrayList? Mesthine, ana sawetara dhaptar tugas umum sing kudu ditindakake. Apa kabeh wis dileksanakake ing kelas tartamtu, utawa kita kudu nulis implementasine dhewe saben wektu? Mesthi, sampeyan ora perlu nulis kabeh dhewe. Operasi sing paling umum sing nglibatake koleksi wis ditindakake ing Collectionskelas statis khusus. Koleksi kelas - 1 Ing Jawa, klompok struktur data umume diarani kumpulan . Data bisa disimpen ing macem-macem cara. Nganti saiki, kita mung sinau ArrayListkelas, ing ngendi data disimpen ing array. Kita bakal kenalan karo koleksi liyane mengko. Saiki, cukup ngerti yen Collectionskelas kasebut dirancang kanggo nggarap ora mungArrayList, nanging uga karo jinis koleksi liyane (mula jenenge). Dadi, tugas apa sing Collectionsdibantu kelas nalika nggarap ArrayList? Pisanan lan paling jelas yaiku ngurutake. Ing pawulangan babagan array, kita nimbang conto karo nomer. Saiki kita bakal nimbang conto karo strings. Kelas Collectionsngetrapake sort()cara ngurutake isi koleksi:
public class Main {

   public static void main(java.lang.String[] args) {

       String mercury = new String("Mercury");
       String venus = new String("Venus");
       String earth = new String("Earth");
       String mars = new String("Mars");
       String jupiter = new String("Jupiter");
       String saturn = new String("Saturn");
       String uranus = new String("Uranus");
       String neptune = new String("Neptune");

       ArrayList<String> solarSystem = new ArrayList<>(Arrays.asList(mercury, venus, earth, mars,
               jupiter, saturn, uranus, neptune));
       Collections.sort(solarSystem);
       System.out.println(solarSystem);

   }
}
Output: [Bumi, Jupiter, Mars, Merkurius, Neptunus, Saturnus, Uranus, Venus] Senar diurutake miturut abjad! Nanging kok miturut abjad? Kelas kasebut Stringbener-bener ngetrapake logika sing ngatur carane senar dibandhingake (sing kedadeyan miturut abjad). Kanggo kelas sing digawe dhewe, sampeyan bisa ngetrapake logika perbandingan dhewe, nanging kita bakal ngomong babagan iki ing pelajaran liyane. Kelas kasebut Collectionsuga mbantu sampeyan nemokake unsur minimal lan maksimal ing file ArrayList. Iki ditindakake kanthi nggunakake metode min()lan max():
public static void main(java.lang.String[] args) {

   ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7));
   System.out.println(Collections.max(numbers));
   System.out.println(Collections.min(numbers));

}
Output: 7 1 Alamiah, iki adoh luwih trep saka nulis kode manual kanggo iterate liwat kabeh unsur lan nemokake paling gedhe / unsur paling cilik :) Cara liyane banget migunani punika reverse(). Yen kita kudu "loncat karo muter awak" dhaftar supaya unsur tindak ing urutan ngelawan, carane kita bakal nindakake? Iku mbokmenawa ora bakal dadi gampang kanggo nulis algoritma kuwi dhewe :) Untunge, cara reverse()wis ngerti carane. Contone, kita ora seneng yen sort()metode kasebut ngurutake planet kita miturut abjad, lan kita pengin mbalikke urutane: saka Z nganti A:
public class Main {

   public static void main(java.lang.String[] args) {

       String mercury = new String("Mercury");
       String venus = new String("Venus");
       String earth = new String("Earth");
       String mars = new String("Mars");
       String jupiter = new String("Jupiter");
       String saturn = new String("Saturn");
       String uranus = new String("Uranus");
       String neptune = new String("Neptune");

       ArrayList<String> solarSystem = new ArrayList<>(Arrays.asList(mercury, venus, earth, mars,
               jupiter, saturn, uranus, neptune));
       Collections.sort(solarSystem);
       Collections.reverse(solarSystem);
       System.out.println(solarSystem);

   }
}
Output: [Venus, Uranus, Saturnus, Neptunus, Merkurius, Mars, Jupiter, Bumi] Kita wis akeh ngomong babagan ngurutake, urutan unsur, lan liya-liyane . Nanging kepiye yen kita duwe tujuan sing ngelawan? Contone, Upaminipun kita nyoba kanggo ngleksanakake game bingo. Kita nambah 100 nomer menyang drum. Padha kudu katon ing layar siji-siji. Pamuter pisanan sing nyabrang kabeh nomer ing tiket menang. Iki gampang ditindakake kanthi nggunakake shuffle()metode:
public class Main {

   public static void main(java.lang.String[] args) {

       ArrayList<Integer> bingoDrum = new ArrayList<>(100);
       for (int i = 1; i <= 100; i++) {

           bingoDrum.add(i);// add the numbers 1 to 100 to the drum
       }

       Collections.shuffle(bingoDrum);// Mix it up
       System.out.println ("Your attention, please! Here are the first 10 numbers from the drum!");
       for (int i = 0; i < 10; i++) {

           System.out.println(bingoDrum.get(i));
       }

   }
}
Output: Mangga perhatian sampeyan! Punika 10 nomer pisanan saka drum! 32 61 4 81 25 8 66 35 42 71 Gampang banget! Masalah wis ditanggulangi, lan bagean game kita ditulis :) Saiki ayo mbayangno kahanan sing beda. Sadurunge, kita nggawe solarSystemdhaptar sing ngemot planet. Lan misale jek cocog karo kita ing kabeh cara, nanging mung siji: sampeyan bisa mbusak item kasebut lan nambah sing anyar ! Iki jelas dudu prilaku sing dikarepake: Sistem tata surya kudu ora bisa diganti ing program kita. Kelas kasebut Collectionsnduweni metode sing menarik banget: unmodifiableList(). Iku nggawe dhaftar immutable saka dhaftar liwati minangka argumen. Sampeyan ora bisa nambah utawa mbusak item saka dhaptar iki. Nalika nangani dhaptar planet ing tata surya, iki pancen sing dikarepake!
public class Main {

   public static void main(java.lang.String[] args) {

       String mercury = new String("Mercury");
       String venus = new String("Venus");
       String earth = new String("Earth");
       String mars = new String("Mars");
       String jupiter = new String("Jupiter");
       String saturn = new String("Saturn");
       String uranus = new String("Uranus");
       String neptune = new String("Neptune");

       List<String> solarSystem = Collections.unmodifiableList(new ArrayList<>(Arrays.asList(mercury, venus, earth, mars,
               jupiter, saturn, uranus, neptune)));
       solarSystem.add("Pluto");// Try to add a new element
   }
}
Output: Pengecualian ing utas "utama" java.lang.UnsupportedOperationException ing java.util.Collections$UnmodifiableCollection.add(Collections.java:1075) ing Main.main(Main.java:21) Iki kesalahan: sampeyan ora bisa nambah apa wae solarSystem! Ing bab mung sampeyan kudu mbayar manungsa waé ing kene iku kasunyatan sing cara iki bali List<>(ora ArrayList<>), wiwit jinis iki umum kanggo kabeh jinis dhaptar. Kahanan liyane sing cukup umum sing bisa kedadeyan kanthi gampang yaiku programmer nambah unsur ing urutan sing salah. Yen kedadeyan kasebut lan kita nemokake manawa Mercury lan Neptunus dicampur, kita bisa mbenerake kesalahan iki kanthi nggunakake swap()metode:
public class Main {

   public static void main(java.lang.String[] args) {

       String mercury = new String("Mercury");
       String venus = new String("Venus");
       String earth = new String("Earth");
       String mars = new String("Mars");
       String jupiter = new String("Jupiter");
       String saturn = new String("Saturn");
       String uranus = new String("Uranus");
       String neptune = new String("Neptune");

       ArrayList<String> solarSystem = new ArrayList<>(Arrays.asList(neptune, venus, earth, mars
       , jupiter, saturn, uranus, mercury));// The planets are in the wrong order
       System.out.println(solarSystem);

       Collections.swap(solarSystem, solarSystem.indexOf(mercury), solarSystem.indexOf(neptune));
       System.out.println(solarSystem);

   }
}
Kita ngliwati swap()metode dhaptar lan indeks saka rong unsur sing kudu diganti. Elinga yen metode kasebut bisa digunakake kanthi indeks, dudu referensi. Dadi, ing kene kita kudu nggunakake ArrayList.indexOf()metode kasebut. Output: [Neptunus, Venus, Bumi, Mars, Jupiter, Saturnus, Uranus, Merkurius] [Merkurius, Venus, Bumi, Mars, Jupiter, Saturnus, Uranus, Neptunus] Pungkasan, kita bakal kenal karo cara sing menarik banget: disjoint(). Iku mriksa apa loro koleksi intersect, IE, apa padha duwe paling siji unsur identik . Yen ora, bali bener. Iku padha nindakake, banjur bali palsu
public class Main {

   public static void main(java.lang.String[] args) {

       String mercury = new String("Mercury");
       String venus = new String("Venus");
       String earth = new String("Earth");
       String mars = new String("Mars");
       String jupiter = new String("Jupiter");
       String saturn = new String("Saturn");
       String uranus = new String("Uranus");
       String neptune = new String("Neptune");

       ArrayList<String> solarSystemPart1 = new ArrayList<>(Arrays.asList(mercury, venus, earth, mars));
       ArrayList<String> solarSystemPart2 = new ArrayList<>(Arrays.asList(jupiter, saturn, uranus, neptune));

       System.out.println(Collections.disjoint(solarSystemPart1, solarSystemPart2));

   }
}
Kaya sing sampeyan ngerteni, rong dhaptar kita duwe unsur sing beda-beda, mula program kasebut ngasilake bener . Iki minangka kelas sing menarik lan migunani banget. Kaya Arrays, iki nindakake akeh rutinitas, kerja sing mboseni kanggo kita, supaya kita fokus ing perkara liyane.
Komentar
  • Popular
  • Anyar
  • lawas
Sampeyan kudu mlebu kanggo ninggalake komentar
Kaca iki durung duwe komentar