summaryrefslogtreecommitdiffstats
path: root/Master/Reference Architectures and Patterns/hjp5/html/k100091.html
blob: d7500b889359686340b90568820b154b9d4a03ec (plain)
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">&nbsp;Titel&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html">&nbsp;Inhalt&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html">&nbsp;Suchen&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html">&nbsp;Index&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()">&nbsp;DOC&nbsp;</a>
<td align="right">Handbuch der Java-Programmierung, 5. Auflage
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100090.html">&nbsp;&lt;&lt;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100090.html">&nbsp;&nbsp;&lt;&nbsp;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100092.html">&nbsp;&nbsp;&gt;&nbsp;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100097.html">&nbsp;&gt;&gt;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()">&nbsp;API&nbsp;</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&ouml;glich. Typische Collections sind Stacks, Queues, Deques,
Priority Queues, Listen und Trees. Collections gibt es in gro&szlig;er
Anzahl und diversen Implementierungsvarianten; jeder angehende Informatiker
kann ein Lied davon singen. 

<p>
Man k&ouml;nnte sagen, dass Collections f&uuml;r Datenstrukturen so
etwas sind wie Schleifenkonstrukte f&uuml;r Anweisungen. So wie Schleifen
die Wiederholbarkeit und Wiederverwendbarkeit von Code erm&ouml;glichen,
erlauben Collections die Zusammenfassung und repetitive Bearbeitung
von einzelnen Datenelementen. Tats&auml;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&ouml;glichen.
Dar&uuml;ber hinaus k&ouml;nnen sie ganz neue Sichten auf die Daten
definieren. Eine Hashtable beispielsweise stellt Daten paarweise zusammen
und erm&ouml;glicht so die Definition einer Referenzbeziehung, die
ohne ihre Hilfe nur schwer herzustellen w&auml;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&auml;cherten Aufgabenspektrum. 

<p>
Java kennt zwei unterschiedliche Collection-APIs. W&auml;hrend beider
Funktionalit&auml;t sich betr&auml;chtlich &uuml;berschneidet, weisen
ihre Schnittstellen teilweise recht gro&szlig;e Unterschiede auf.
Einerseits gibt es seit dem JDK 1.0 die &#187;traditionellen&#171;
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&uuml;hrt
und parallel zu den vorhandenen Klassen platziert. Wir werden uns
in diesem Kapitel mit den traditionellen Klassen besch&auml;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&uuml;nde beleuchten, die zur Einf&uuml;hrung der neuen Klassen
gef&uuml;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">&nbsp;Titel&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html">&nbsp;Inhalt&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html">&nbsp;Suchen&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html">&nbsp;Index&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()">&nbsp;DOC&nbsp;</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">&nbsp;&lt;&lt;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100090.html">&nbsp;&nbsp;&lt;&nbsp;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100092.html">&nbsp;&nbsp;&gt;&nbsp;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100097.html">&nbsp;&gt;&gt;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()">&nbsp;API&nbsp;</a>
<td align="right">&copy; 1998, 2007 Guido Kr&uuml;ger &amp; Thomas
Stark, <a href="http://www.javabuch.de">http://www.javabuch.de</a>
</table>
<a name="endofbody"></a>
</body>
</html>