1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
<html>
<head>
<title>
Handbuch der Java-Programmierung, 5. Auflage
</title>
</head>
<body>
<a name="startofbody"></a>
<script language="JavaScript" src="hjp4lib.js">
</script>
<script language="JavaScript">
installKbdHandler("97,#startofbody;101,#endofbody;116,cover.html;122,k100003.html;115,search.html;105,index.html;100,JDKDOCS;112,APIDOCS;104,k100090.html;106,k100090.html;107,k100092.html;108,k100097.html");
</script>
<table border=0 cellpadding=0 cellspacing=1 width="100%">
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
<td align="right">Handbuch der Java-Programmierung, 5. Auflage
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100090.html"> << </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100090.html"> < </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100092.html"> > </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100097.html"> >> </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
<td align="right">Kapitel 14 - Collections I
</table>
<hr>
<!-- Section -->
<a name="sectlevel2id014001"></a>
<h2>14.1 Grundlagen und Konzepte </h2>
<hr>
<ul>
<li><a href="k100091.html#sectlevel2id014001">14.1 Grundlagen und Konzepte</a>
</ul>
<hr>
<p>
Als <i>Collections</i> bezeichnet man Datenstrukturen, die dazu dienen,
<i>Mengen von Daten</i> aufzunehmen und zu verarbeiten. Die Daten
werden gekapselt abgelegt, und der Zugriff ist nur mit Hilfe vorgegebener
Methoden möglich. Typische Collections sind Stacks, Queues, Deques,
Priority Queues, Listen und Trees. Collections gibt es in großer
Anzahl und diversen Implementierungsvarianten; jeder angehende Informatiker
kann ein Lied davon singen.
<p>
Man könnte sagen, dass Collections für Datenstrukturen so
etwas sind wie Schleifenkonstrukte für Anweisungen. So wie Schleifen
die Wiederholbarkeit und Wiederverwendbarkeit von Code ermöglichen,
erlauben Collections die Zusammenfassung und repetitive Bearbeitung
von einzelnen Datenelementen. Tatsächlich werden Collections
sehr oft in Zusammenhang mit Schleifen verwendet, insbesondere, wenn
das Programm von seiner Grundstruktur her nicht Einzel-, sondern Mengendaten
verarbeitet.
<p>
Ihre Hauptrolle besteht dann darin, Elementardaten zu speichern und
einen der Bearbeitung angemessenen Zugriff darauf zu ermöglichen.
Darüber hinaus können sie ganz neue Sichten auf die Daten
definieren. Eine Hashtable beispielsweise stellt Daten paarweise zusammen
und ermöglicht so die Definition einer Referenzbeziehung, die
ohne ihre Hilfe nur schwer herzustellen wäre.
<p>
Einfache Programmiersprachen bieten Collections meist nur in Form
von Arrays. In Java und anderen objektorientierten Sprachen gibt es
dagegen eine ganze Reihe unterschiedlicher Collections mit einem viel
breiter gefächerten Aufgabenspektrum.
<p>
Java kennt zwei unterschiedliche Collection-APIs. Während beider
Funktionalität sich beträchtlich überschneidet, weisen
ihre Schnittstellen teilweise recht große Unterschiede auf.
Einerseits gibt es seit dem JDK 1.0 die »traditionellen«
Collections mit den Klassen <a href="index_v.html#ixb100120"><font color=#000080><tt>Vector</tt></font></a>,
<a href="index_s.html#ixb100674"><font color=#000080><tt>Stack</tt></font></a>,
<a href="index_d.html#ixb100675"><font color=#000080><tt>Dictionary</tt></font></a>,
<a href="index_h.html#ixb100419"><font color=#000080><tt>Hashtable</tt></font></a>
und <a href="index_b.html#ixb100676"><font color=#000080><tt>BitSet</tt></font></a>.
Andererseits wurde mit dem JDK 1.2 ein neues Collection-API eingeführt
und parallel zu den vorhandenen Klassen platziert. Wir werden uns
in diesem Kapitel mit den traditionellen Klassen beschäftigen
und in <a href="k100097.html#kapitelcollections2">Kapitel 15</a> auf
die Neuerungen des JDK 1.2 eingehen. Dann werden wir auch einige der
Beweggründe beleuchten, die zur Einführung der neuen Klassen
geführt haben.
<hr>
<table border=0 cellpadding=0 cellspacing=1 width="100%">
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
<td align="right">Handbuch der Java-Programmierung, 5. Auflage, Addison
Wesley, Version 5.0.1
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100090.html"> << </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100090.html"> < </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100092.html"> > </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100097.html"> >> </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
<td align="right">© 1998, 2007 Guido Krüger & Thomas
Stark, <a href="http://www.javabuch.de">http://www.javabuch.de</a>
</table>
<a name="endofbody"></a>
</body>
</html>
|