4 changed files with 5 additions and 167 deletions
@ -1,7 +1,10 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
<?xml version="1.0" encoding="UTF-8"?> |
||||
<classpath> |
<classpath> |
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> |
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> |
||||
|
<attributes> |
||||
|
<attribute name="module" value="true"/> |
||||
|
</attributes> |
||||
|
</classpathentry> |
||||
<classpathentry kind="src" path="src"/> |
<classpathentry kind="src" path="src"/> |
||||
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/> |
|
||||
<classpathentry kind="output" path="bin"/> |
<classpathentry kind="output" path="bin"/> |
||||
</classpath> |
</classpath> |
||||
|
@ -1,118 +0,0 @@ |
|||||
package solution; |
|
||||
|
|
||||
import java.util.function.Consumer; |
|
||||
|
|
||||
import testat.ISimpleMap; |
|
||||
|
|
||||
public class SimpleArrayMap<K, V> implements ISimpleMap<K, V> { |
|
||||
|
|
||||
private K[] keys; |
|
||||
private V[] values; |
|
||||
private int size; |
|
||||
|
|
||||
public SimpleArrayMap(int arraySize) { |
|
||||
|
|
||||
this.keys = (K[]) new Object[arraySize]; |
|
||||
this.values = (V[]) new Object[arraySize]; |
|
||||
this.size = 0; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public V put(K k, V v) { |
|
||||
|
|
||||
V tempValue; |
|
||||
|
|
||||
if (k == null || v == null) { |
|
||||
return null; |
|
||||
} |
|
||||
|
|
||||
for (int i = 0; i < values.length; i++) { |
|
||||
if (k.equals(keys[i])) { |
|
||||
tempValue = values[i]; |
|
||||
values[i] = v; |
|
||||
return tempValue; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
for (int i = 0; i < values.length; i++) { |
|
||||
if (keys[i] == null) { |
|
||||
keys[i] = k; |
|
||||
values[i] = v; |
|
||||
size++; |
|
||||
break; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
return null; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public V get(K k) { |
|
||||
|
|
||||
if (k == null) { |
|
||||
return null; |
|
||||
} |
|
||||
|
|
||||
for (int i = 0; i < values.length; i++) { |
|
||||
if (k.equals(keys[i])) { |
|
||||
return values[i]; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
return null; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public V remove(K k) { |
|
||||
|
|
||||
V tempValue; |
|
||||
|
|
||||
if (k == null) { |
|
||||
return null; |
|
||||
} |
|
||||
|
|
||||
for (int i = 0; i < values.length; i++) { |
|
||||
if (k.equals(keys[i])) { |
|
||||
tempValue = values[i]; |
|
||||
keys[i] = null; |
|
||||
values[i] = null; |
|
||||
size--; |
|
||||
return tempValue; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
return null; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public boolean contains(V v) { |
|
||||
|
|
||||
if (v == null) { |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
for (int i = 0; i < values.length; i++) { |
|
||||
if (v.equals(values[i])) { |
|
||||
return true; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public void forEach(Consumer<? super V> consumer) { |
|
||||
|
|
||||
for (int i = 0; i < values.length; i++) { |
|
||||
if (keys[i] != null) { |
|
||||
consumer.accept(values[i]); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public int size() { |
|
||||
return size; |
|
||||
} |
|
||||
|
|
||||
} |
|
@ -1,13 +0,0 @@ |
|||||
package solution; |
|
||||
|
|
||||
import testat.ASimpleMapTest; |
|
||||
import testat.ISimpleMap; |
|
||||
|
|
||||
public class SimpleMapTest extends ASimpleMapTest{ |
|
||||
|
|
||||
@Override |
|
||||
protected ISimpleMap<String, String> getInstance() { |
|
||||
|
|
||||
return new SimpleArrayMap<>(5); |
|
||||
} |
|
||||
} |
|
@ -1,34 +0,0 @@ |
|||||
package testat; |
|
||||
|
|
||||
import java.util.function.Consumer; |
|
||||
|
|
||||
public interface ISimpleMap<K, V> { |
|
||||
|
|
||||
// speichert zu dem Schlüssel k den Wert v, sofern beide nicht null sind
|
|
||||
// (ist mind. einer null, wird null zurück gegeben) .
|
|
||||
// Falls zu k bereits ein Wert w vorhanden ist, wird dieser durch v
|
|
||||
// ersetzt. Der alte Wert w wird zurückgegeben.
|
|
||||
// Falls zu k noch kein Wert gespeichert war, wird zu k der Wert v
|
|
||||
// aufgenommen und null zurückgegeben
|
|
||||
V put(K k, V v); |
|
||||
|
|
||||
// Liefert den zum Schlüssel k gespeicherten Wert. Liefert null,
|
|
||||
// falls k == null oder falls zu k kein Wert gespeichert ist
|
|
||||
V get(K k); |
|
||||
|
|
||||
// Entfernt den zum Schlüssel k gespeicherten Wert v und
|
|
||||
// liefert v zurück. Liefert null, falls k == null oder falls
|
|
||||
// zu k kein Wert gespeichert war
|
|
||||
V remove(K k); |
|
||||
|
|
||||
// Liefert true, falls der Wert v in der Map (zu irgendeinem Schlüssel)
|
|
||||
// gespeichert ist
|
|
||||
boolean contains(V v); |
|
||||
|
|
||||
// wendet die Methode consumer.accept(v) auf alle in der
|
|
||||
// Map gespeicherten Werte an
|
|
||||
void forEach(Consumer<? super V> consumer); |
|
||||
|
|
||||
// Anzahl an in der Map gespeicherten Werte
|
|
||||
int size(); |
|
||||
} |
|
Loading…
Reference in new issue