Οτιδηποτε δεν καταλαβετε η αν θελετε κατι extra , καντε reply για να σας το εξηγησω. Επισης καλο ειναι να κανετε την ασκηση που σας εχω στο τελος για να τα εμπεδωσετε τελειωτικα
FastList: Μπορειτε να χρησιμοποιειτε την κλαση FastList για να συγκεντρωσετε στο αντικειμενο της , πολλα αντικειμενα απο αλλη κλαση. Ενα καλο παραδειγμα και πολυ συχνο ειναι τα events. Για να συγκεντρωσει ο προγραμματιστης(που εχει γραψει τον κωδικα) τους παικτες που θα ειναι στο Event χρησιμοποιει FastLists.Μπορειτε να χρησιμοποιησετε και πινακες, αλλα η FastList ειναι πιο ευκολη σε χρηση λογω τον ετοιμων μεθοδων που εχει που κανουν τη ζωη σας ευκολη(θα τις δουμε παρακατω).
Παμε λοιπον να ξεκινησουμε να αναλυουμε την κλασση αυτη.
Η χρηση της δεν εχει κατι το ιδιαιτερο , δημιουργουμε ενα αντικειμενο της με το οποιο θα δουλεψουμε.
FastList<Object> list1 = new FastList<Object>();
FastList<L2PcInstance> list2 = new FastList<L2PcInstance>();
FastList<String> list3 = new FastList<String>();
Ωραια , μολις καναμε 3 παραδειγματα για την δημιουργια ενος FastList , 3 ξεχωριστα αντικειμενα , τα list1,list2 και list3.
Το list1 ειναι της μορφης της κλασσης Object , η οποια ειναι μια κλασση που δεχεται ολα τα αντικειμενα.
To list2 ειναι της μορφης L2PcInstance , η οποια μας αφηνει να χειριζομαστε παικτες , οπως τα events , και εκει τετοια fastlists χρησιμοποιουνται.
To list3 ειναι της μορφης String , μας αφηνει να χειριζομαστε γραμματοσειρες , π.χ ονοματα χαρακτηρων ειναι τετοιου ειδους.
Παμε τωρα να δουμε βασικες μεθοδους που χρησιμοποιουμε και μερικες στρατηγικες.
Μεθοδος add(Object y):
Το λεει και η λεξη , με την μεθοδο add βαζουμε , προσθετουμε αντικειμενα στην FastList μας.
FastList<Integer> numbers = new FastList<Integer>();
numbers.add(25);
numbers.add(34);
numbers.add(383);
Στο παραδειγμα μας καναμε την FastList numbers η οποια περιεχει τους αριθμους 25,34,383.
Για να διαβασουμε τους αριθμους θα χρησιμοποιησουμε ενα enchanted for loop το οποιο θα ελεγχει μια μια τις τιμες που περιεχει.
if(!numbers.isEmpty())
for(int j : numbers)
System.out.println(j);
Η μεθοδος isEmpty() ειναι της μορφης boolean , επιστρεφει true η false και ελεγχει αν η λιστα μας ειναι αδεια. Στο παραδειγμα μας λεμε αν η λιστα δεν ειναι αδεια τοτε να εμφανισει ολα τα στοιχεια της. for(int j : numbers) με αυτο , το j παιρνει καθε φορα ενα ξεχωριστο στοιχειο απο την FastList.
Μεθοδος remove(Object y):
Η μεθοδος remove μας επιτρεπει να διαγραψουμε στοιχεια και ειναι πολυ χρησιμη.
FastList<L2PcInstance> players = new FastList<Players>();
for(L2PcInstance j : L2World.getInstance().getAllPlayers())
players.add(j);
for(L2PcInstance v : players)
if(v.isHero())
players.remove(v);
Το παραπανω μπορει να σας μπερδεψει , αλλα το εκανα μονο και μονο για να σας δειξω το remove , και απλα να μην κανω συνεχεια τα ιδια παραδειγματα.
for(L2PcInstance j : L2World.getInstance().getAllPlayers()) με αυτο παιρνουμε εναν εναν τους online παικτες και μετα τους βαζουμε στην λιστα μας.
for(L2PcInstance v : players) μετα τσεκαρουμε τους παικτες στην FastList μας , δηλαδη ολους τους Online παλι , απλα αυτη τη φορα μεσα απο τη λιστα μας.
if(v.isHero())
players.remove(v);
Εδω τσεκαρουμε αν ο παικτης ειναι hero , τοτε να τον βγαλει απο τη λιστα μας . Με λιγα λογια κρατησαμε μονο τους παικτες που δεν ειναι Hero. Ετσι χρησιμοποιειται η remove , βγαζει στοιχεια απο τη λιστα.
Μεθοδος clean:
Διαγραφει ολα τα στοιχεια.
FastList<String> names = new FastList<String>();
for(L2PcInstance j : L2World.getInstance().getAllPlayers())
names.add(j.getName());
names.clean();
Εδω συλλεγουμε ολα τα ονοματα τον Online χαρακτηρων στην λιστα μας, και μετα πολυ απλα τα διαγραφουμε ολα , πλεον ειναι αδεια η λιστα μας αφου χρησιμοποιειται η μεθοδος clean();
Μια ασκηση για να σιγουρευτειτε οτι τα καταλαβατε
Δημιουργηστε μια FastList η οποια θα συγκεντρωνει ολους τους παικτες οι οποιοι εχουν πανω απο 15 pvp. Μετα καθαριστε τη λιστα με τους 2 τροπους:(μην χρησιμοποιησετε την μεθοδο remove οπως εκανα εγω για να βγαλω τους hero , το εκανα σαν παραιδεγμα)
1)Καντε παραδειγμα για να καθαρισετε τη λιστα με τη μεθοδο clean() ,
2)Καντε παραδειγμα για να την καθαρισετε χρησιμοποιωντας το for loop και τη μεθοδο remove(Object y)
Για να σιγουρευτειτε αν ειναι σωστη , καντε την reply.