SlideServe
Menu
Préférences
© SlideServe · v2026

Grouping objects

nerina avatar
21 diapositives · 432 Views · Aug 21, 2012

Grouping objects. Arrays, Collections and Iterators. 1.0. Main concepts to be covered. Arrays Collections Iterators. Requirement to group objects. Many applications for collections of objects: Personal organizers Library catalogs Student-record system

Grouping objects - slide 1
01 / 21Grouping objects
1 / 17

Télécharger la présentation

Grouping objects
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Grouping objects Arrays, Collections and Iterators 1.0

  2. Main concepts to be covered • Arrays • Collections • Iterators

  3. Requirement to group objects • Many applications for collections of objects: • Personal organizers • Library catalogs • Student-record system • The number of items to be stored varies: • Items added • Items deleted

  4. Fixed-size collections • Programming languages usually offer a special fixed-size collection type: an array • Arrays are built-in, use [] syntax • Java arrays can store objects or primitive-type values • Maximum collection size must be fixed at Array creation time • How is Array creation time more dynamic than in other programming languages, such as C++?

  5. Creating an array object public class LogAnalyzer { private int[] hourCounts; private LogfileReader reader; public LogAnalyzer() { hourCounts = new int[24]; reader = new LogfileReader(); } ... } Array variable declaration Array object creation

  6. The hourCounts array

  7. Using an array • Square-bracket notation is used to access an array element:hourCounts[hour] • Elements are used like ordinary variables • In an expression: • adjusted = hourCounts[hour] – 3; • hourCounts[hour]++;

  8. Class libraries • Collections of useful classes • Encourages reuse of design and code • Java organizes its libraries in packages • The java.util package includes classes for grouping objects in collections

  9. A personal notebook • Notes may be stored • No limit to the number of notes • It tells how many notes are stored

  10. import java.util.ArrayList; /** * ... */ public class Notebook { // Storage for an arbitrary number of notes. private ArrayList notes; /** * Perform any initialization required for the * notebook. */ public Notebook() { notes = new ArrayList(); } ... }

  11. Object structures with collections

  12. Features of ArrayList • It keeps the objects in order • It increases its capacity as necessary • It keeps a private count: size() accessor retrieves it

  13. Using ArrayList collection public class Notebook { private ArrayList notes; ... public void storeNote(String note) { notes.add(note); } public int numberOfNotes() { return notes.size(); } ... } Adding a new note Returning the number of notes (delegation).

  14. Adding a third note myBook.add(“11:30 meet John”)

  15. Retrieving an object public void showNote(int noteNumber) { if(noteNumber<0 && noteNumber >= numberOfNotes()) { // This is not a valid note number. } else System.out.println(notes.get(noteNumber)); } Retrieve and print the note

  16. Removal may affect numbering myBook.remove(1)

  17. Review: ArrayList • Items may be added and removed • Each item has an index • Index values may change if items are removed or further items added • The main ArrayList methods are add, get, remove and size • For more methods, see API document

  18. Collections framework • Goals comparable to C++’s STL • Data structures: • Vector, LinkedList, HashSet, etc. • Algorithms: • Sorting, searching, shuffling, etc.

  19. Loops and bugs • Why are loops often a cause of bugs? • What kind of bugs? • Wouldn’t be nice to avoid these bugs?

  20. Iterating over a collection Returns an Iterator object java.util.Iterator Iterator it = myCollection.iterator(); while(it.hasNext()) { call it.next() to get the next object do something with that object } public void listNotes() { Iterator it = notes.iterator(); while(it.hasNext()) { System.out.println(it.next()); } } How does Iteratorhelp avoid bugs?

  21. Review: loops and Iterator • Java while and for loops are similar to C++ • Similar bugs, too! • Collection classes have special Iterator objects that simplify iteration over the whole collection • Bounds-checking methods help avoid bugs