Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 14824|Απάντηση: 0

[Επικοινωνία] java:list和set集合的遍历

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 4/1/2015 1:30:48 μ.μ. | | |

Υπάρχουν τρεις τρόποι για να διασχίσετε μια λίστα   
   
   <A> Λίστα λίστας = new ArrayList<A>();   
   list.add(νέο A());   
   list.add(νέο A());   
   ...   
   
  Ο πρώτος τύπος:   
   for(Iterator<A> it = list.iterator();    it.hasNext();    )    {   
       ....   
   }   
   Αυτός ο τρόπος είναι σε έναν κύκλο
Ταυτόχρονα, εάν θέλετε να αφαιρέσετε ένα στοιχείο στη διαδικασία της ευχαρίστησης, μπορείτε να καλέσετε μόνο τη μέθοδο it.remove, δεν μπορείτε να χρησιμοποιήσετε τη μέθοδο list.remove, διαφορετικά θα υπάρξει σφάλμα ταυτόχρονης πρόσβασης.   
Αλλά η συμβατότητα είναι η καλύτερη, κατάλληλη για τη συλλογή Collection
   
   Ο δεύτερος τύπος:   
   for(A a : λίστα) {   
       .....   
   }   
  Η μέθοδος για κάθε μέθοδο εξακολουθεί να είναι επαναλήπτης, η πρώτη καλείται εσωτερικά και η σούπα δεν αλλάζει και υπάρχουν άλλοι περιορισμοί σε αυτήν την κυκλική μέθοδο, επομένως δεν συνιστάται η χρήση της   
  Μπορεί να χρησιμοποιηθεί μόνο πάνω από το JK1.5 με κακή συμβατότητα Το σετ είναι καλύτερο να το χρησιμοποιήσετε

   Ο τρίτος τύπος:   
   for(int i=0;    i<list.size();    i++) {   
       A a = list.get(i);   
       ...   
   }   
  for , η διέλευση των περιεχομένων μιας συλλογής List λειτουργεί μόνο για τη List, επειδή η List είναι μια διατεταγμένη συλλογή
, το εσωτερικό δεν είναι κλειδωμένο, η υψηλότερη απόδοση, αλλά όταν γράφετε multithreading, θα πρέπει να λαμβάνεται υπόψη το πρόβλημα των ταυτόχρονων λειτουργιών!

Η διέλευση μιας συλλογής Set είναι με τον ίδιο τρόπο όπως μια List, αλλά δεν μπορείτε να χρησιμοποιήσετε έναν βρόχο for για να επαναλάβετε μια συλλογή Set επειδή δεν υπάρχει μέθοδος get() στη συλλογή Set.
  Αλλά μπορεί να επαναληφθεί με βελτιώσεις
  Διασχίστε τη συλλογή Set
  Set<String> set = νέο HashSet<String>();
  set.add("qqq");
  set.add("www");
  set.add("εεεε");
  set.add("rrr");
  
  for(Συμβολοσειρά s : set){
   System.out.println("set="+s);
  }






Προηγούμενος:Συλλογή Traversal of List σε java και συγκριτική ανάλυση δύο κλάσεων υλοποίησης
Επόμενος:Είναι μεγαλύτερος αδερφός, είναι κορίτσι loli, γιατί της έδωσε ένα φλιτζάνι;
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com