Tartalom
- irányok
- Rendezzen egy kapcsolt listát Java-ban
- Rendezés az alapértelmezett és az egyéni komparátorok használatával
- tippek
- figyelmeztetés
Hogyan lehet rendezni egy kapcsolt listát Java-ban. A zárt lista az adatstruktúrák egyik fő típusa a programozási világban. Olyan csomópontok szervezete, amelyek a következő csomópontra mutató adatokat és hivatkozásokat tartalmaznak. A kapcsolt lista rendezéséhez Java-ban van egy listaosztály, amely együtt működik a gyűjtemény keretrendszerrel, amely algoritmusokat rendelésként valósít meg.
irányok
A kapcsolt lista rendezése Java-ban (lekérdezési kép a danimages által a Fotolia.com-tól)-
A LinkedList objektum létrehozásával hozza létre a linkelt listát, és hozzárendel egy LinkedList változót. A LinkedList az általános listaosztályból származik, így bármely olyan lista, amely elfogadja a listát, a LinkedList objektumban is elfogadható lesz. "" LinkedList l = új LinkedList (); ""
-
Adjon hozzá azonos típusú objektumokat (például egész számokat) a listához. Ezek lehetnek bármilyen tárgyak, de a linkelt lista rendezéséhez mindegyiknek azonos típusúnak kell lennie.
-
Használja a List.addFirst módszert új objektumok beillesztésére a lista tetejére, hogy a hozzáadott objektumok ellenkező sorrendben legyenek. Ha hozzá kívánja adni őket a lista végéhez, használja a List.addLast módszert. "" list.addFirst (1); list.addFirst (3); list.addFirst (2); "
-
Használjon iterátort a listán való ismétléshez és a nyomtatás előtti és utáni nyomtatásához. "" (Iterator i = list.iterator (); i.hasNext ();) {System.out.println (i.next ());} "
Rendezzen egy kapcsolt listát Java-ban
-
A lista rendezése az alapértelmezett összehasonlítóval. A komparátor egy objektum, amely két objektumot hasonlít össze. Az alapértelmezett összehasonlító objektum a kisebb operátort használja, így a lista növekvő sorrendben kerül megrendelésre. A lista rendezéséhez használja a statikus Collection.sort módszert. "" Gyűjtemények.lista (lista); ""
-
y) {return -1; "> Rendelje meg a listát egy egyéni összehasonlítóval egy osztály létrehozásával, amely egy összehasonlító felületet valósít meg, és átadja azt egy példánynak, mint megrendelési argumentumot. "nyilvános osztály GreaterThan végrehajtja a Comparator-ot, ha (x == y) {return 0;} else {return 1;}}}"
-
Használja a Collection.sort hívást a GreaterThan új példányának átadásával. Mivel a nagyobb objektumok a többiek előtt lesznek, a lista növekvő sorrendben csökkenő sorrendben lesz rendezve. Alternatív megoldásként, ha egy egyéni osztályból származó objektumlistát rendez, amit Ön maga írott be, ez az osztály megvalósíthatja az összehasonlítható felületet a külön összehasonlító osztály használata helyett. "" Gyűjtemények.lista (lista, új GreaterThan ()); ""
Rendezés az alapértelmezett és az egyéni komparátorok használatával
tippek
- Problémát jelent, hogy egy egész számot használjunk az áramkörben és a List.size () metódusban. A zárt listák elterjesztése drága számítási művelet. Ha indexkezelőt használ (mint például az l [2]), mint bármelyik parancsban, a Java-nak a listára kell válnia, amíg el nem éri a 2-es indexet. Kis listák esetében ez egy probléma, bármi nagy, az index-kezelő használatával az iteráció valami olyasmit vált, amely sok erőforrást igényel.
- Függetlenül attól, hogy a List objektumot hogyan valósítják meg, mivel a LinkedList ugyanezt a felületet használja.
- Az összehasonlító módszernek vissza kell térnie a -1-re, ha arg0-t rendelünk az arg1 előtt, 0, ha egyenlő sorrendben rendeljük, és 1-et, ha arg1 van rendelve az arg0 előtt.
figyelmeztetés
- Az iterátorobjektum biztosítja, hogy a lista minden csomópontja csak egyszer látogasson el. Ez fontos megjegyezni, mivel szükségtelenül meglátogathat minket az adatstruktúrákkal ahhoz a ponthoz, ahol a program meghibásodik.