Jump to content

[Guide]Δομες δεδομενων : FastList


Recommended Posts

Οτιδηποτε δεν καταλαβετε η αν θελετε κατι 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.

Link to comment
Share on other sites

Πολυ καλό. Πρωτότυπο! Επίτελους κάτι που δεν υπάρχει! Μπράβο σου. Αξίζει αμοιβή!

Να σαι καλα φιλε, ευχαριστω.

Link to comment
Share on other sites

Πολυ καλό. Πρωτότυπο! Επίτελους κάτι που δεν υπάρχει! Μπράβο σου. Αξίζει αμοιβή!

 

+1 Iracundus gia to xrisimo guide :)

Link to comment
Share on other sites

Ευχαριστω φιλε  8)

 

Μεχρι στιγμης κανεις δεν εκανε την ασκηση;

 

pistevo pos tha tin kanoune :) mpravo s kai paly p ekanes tetio kopo!

Link to comment
Share on other sites

Ποια η χρήση αυτού του code?

Τα λεω αφου , τα fastlists ειναι χρησιμα παρα πολυ χρησιμα , και για events και για αλλα πραγματα. Συνδυαζονται και με την database , με συνδεσεις σε αρχεια και αλλα.

 

Για την ασκηση ειναι απλα για να δειτε οτι τα καταλαβατε και να σιγουρευτειτε οτι μπορειτε να δουλεψετε ευκολα με fastlists

Link to comment
Share on other sites

Τα λεω αφου , τα fastlists ειναι χρησιμα παρα πολυ χρησιμα , και για events και για αλλα πραγματα. Συνδυαζονται και με την database , με συνδεσεις σε αρχεια και αλλα.

 

Για την ασκηση ειναι απλα για να δειτε οτι τα καταλαβατε και να σιγουρευτειτε οτι μπορειτε να δουλεψετε ευκολα με fastlists

mpravo sou file!

 

//offtopic: wreo to personal text.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...