PowerPoint-presentatie

advertisement
H 22. COLLECTIONS FRAMEWORK.
1. INLEIDING.

Collections framework



Is een verzameling van data structuren,
interfaces en algoritmen
Meest voorkomende datastructuren
gestandaardiseerd en efficient
geïmplementeerd.
Voorbeeld van herbruikbare code
JAVA
1
2. OVERZICHT COLLECTIONS FRAMEWORK

Collection


Is een data structuur (object) die referenties naar
andere objecten bijhoudt.
Collections framework


Interfaces die de bewerkingen declareren voor
verschillende collection types en verschillende
implementaties (classes) daarvan.
Behoren tot het package java.util




Collection
Set
List
Map
JAVA
2
3. CLASS ARRAYS

Class Arrays
 Voorziet static methoden voor
manipulatie van arrays

Voorziet “high-level” methoden




Methode binarySearch voor het zoeken in geordende
arrays
Methode equals voor het vergelijken van arrays
Method fill voor waarden in te brengen in ee, array
Method sort voor sorteren
JAVA
3
3. CLASS ARRAYS : Voorbeeld methoden.
import java.util.*;
public class UsingArrays
{
private int intValues[] = { 1, 2, 3, 4, 5, 6 };
private double doubleValues[] = { 8.4, 9.3, 0.2, 7.9, 3.4 };
private int filledInt[], intValuesCopy[];
public UsingArrays()
// initialize arrays
{
filledInt = new int[ 10 ];
intValuesCopy = new int[ intValues.length ];
// vul filledInt volledig op met 7’s
Arrays.fill( filledInt, 7 );
// sorteer doubleValues in oplopende volgorde
Arrays.sort( doubleValues );
// copy array intValues naar array intValuesCopy
System.arraycopy( intValues, 0, intValuesCopy,
0, intValues.length );
JAVA
}
4
3. Methode arraycopy
// copy array intValues naar array intValuesCopy
System.arraycopy( intValues, 0, intValuesCopy,
0, intValues.length );
static void arraycopy(Object src, int srcPos, Object dest,
int destPos, int length)
Parameters:
src - de source array.
srcPos - start positie in de source array.
dest - de destination array.
destPos - start positie in de destination array.
length – aantal elementen die gekopieerd moeten worden.
Werpt:
IndexOutOfBoundsException – indien de grenzen van src of
dest overschreden worden.
ArrayStoreException – indien het type van de array src niet in
dest geplaatst kan worden.
NullPointerException – indien src of dest null is.
JAVA
5
3. CLASS ARRAYS : Voorbeeld methoden.
public void doiets()
{
//vergelijk de inhoud van beide arrays
boolean b = Arrays.equals( intValues, intValuesCopy );
//...
// element opzoeken
int location= Arrays.binarySearch( intValues, value );
//indien value = 5
returns 4
//indien value = 8763 returns –7
// -7 = de indexwaarde_in_geval_van_invoegen*(-1) -1
//...
}
//...
}
JAVA
6
3. CLASS ARRAYS : overloaded methoden

static int binarySearch(int[] a, int key)
static int binarySearch(double[] a, double key)

Idem voor char, byte, short, long en float



static int binarySearch(Object[] a, Object key)
static int binarySearch(Object[] a, Object key,
Comparator c)  zie paragraaf 6.

static boolean equals(int[] a, int[] a2)

Idem voor char, byte, short, long, float en double

static boolean equals(Object[] a, Object[] a2)
JAVA
7
3. CLASS ARRAYS : overloaded methoden


static void fill(int[] a, int val)
static void fill(int[] a, int fromIndex, int toIndex,
int val)



IllegalArgumentException –
if fromIndex > toIndex
ArrayIndexOutOfBoundsException –
if fromIndex < 0 of toIndex > a.length
Idem voor char, byte, short, long, float, double en
object
JAVA
8
3. CLASS ARRAYS : overloaded methoden


static void sort(int[] a)
static void sort(int[] a, int fromIndex, int toIndex)







IllegalArgumentException – if fromIndex > toIndex
ArrayIndexOutOfBoundsException –
if fromIndex < 0 of toIndex > a.length
Idem voor char, byte, short, long, float en double
static void sort(Object[] a)
static void sort(Object[] a, Comparator c)
static void sort(Object[] a, int fromIndex,
int toIndex)
static void sort(Object[] a, int fromIndex,
int toIndex, Comparator c)  zie paragraaf 6.
JAVA
9
3. CLASS ARRAYS : static methode asList
static methode asList laat toe een Arrays object
als een List (zie verder) te doorlopen. Wijzigen op de
elementen via de List view zijn effectief in het Arrays object,
en vise versa.
Opm: de List heeft een vaste lengte (geen add of remove!).
Voorbeeld:
import java.util.*;
public class UsingAsList
{
private static final String values[] = { "red", "white",
"blue" };
private List list;
// initialiseer List en wijzig (set methode) de waarde
// op locatie 1
public UsingAsList()
{ list = Arrays.asList( values );
// get List
list.set( 1, "green" );
// wijzig een waarde
JAVA
10
}
3. CLASS ARRAYS : static methode asList
// output via List en via array
public void printElements()
{
System.out.print( "List elements : " );
for ( int count = 0; count < list.size(); count++ )
System.out.print( list.get( count ) + " " );
System.out.print( "\nArray elements: " );
for ( int count = 0; count < values.length; count++ )
System.out.print( values[ count ] + " " );
System.out.println();
}
public static void main( String args[] )
{
new UsingAsList().printElements();
}
}
List elements : red green blue
Array elements: red green blue
JAVA
11
4. INTERFACE COLLECTION EN CLASS
COLLECTIONS.

Interface Collection

Bevat bulk operations (op de volledige collection)




Adding, clearing, comparing en retaining objects in de
collection
Interfaces Set en List extend interface
Collection
Voorziet een Iterator, die ook elementen
kan verwijderen.
Class Collections


Voorziet static methoden die collections
manipuleren
Polymorfisme wordt hierbij ondersteund
JAVA
12
5. LIST INTERFACE.
Interface Collection
Interface List
Vector, ArrayList en LinkedList zijn
implementatie klassen van interface
List.
JAVA
13
Download