Ich muss folgende Aufgabe möglichst gut und ordentlich lösen:
http://jeebone.je.funpic.de/java/2.JPG
das hab ich bisher folgendermaßen gemacht:
[Java]import java.util.HashMap;
import java.util.ArrayList;
public class ElephantMap<K,V> {
private HashMap<K,ArrayList<V>> map = new HashMap<K,ArrayList<V>>();
public V put(K key, V value)
{
V return_value = this.get(key);
if(map.containsKey(key))
map.get(key).add(value);
else
{
ArrayList<V> newList = new ArrayList<V>();
newList.add(value);
map.put(key, newList);
}
return return_value;
}
public V get(K key)
{
if(map.containsKey(key))
return map.get(key).get(map.get(key).size());
return null;
}
public int size()
{
return map.size();
}
public V remove(K key)
{
V return_value = this.get(key);
if(map.containsKey(key))
if(map.get(key).size() > 1)
map.get(key).remove(map.get(key).size());
else
map.remove(key);
return return_value;
}
public int count(K key)
{
if(map.containsKey(key))
return map.get(key).size();
return 0;
}
public V get(K key, int n)
{
if(map.containsKey(key))
if(map.get(key).size() > n)
return map.get(key).get(map.get(key).size() - n - 1);
return null;
}
}
[/Java]
da ich aber noch Anfänger bin, wird das sicher nicht perfekt sein, könntet ihr mir sagen, wo da noch was zu verbessern ist, bzw wo was nicht so schön ist usw ...
http://jeebone.je.funpic.de/java/2.JPG
das hab ich bisher folgendermaßen gemacht:
[Java]import java.util.HashMap;
import java.util.ArrayList;
public class ElephantMap<K,V> {
private HashMap<K,ArrayList<V>> map = new HashMap<K,ArrayList<V>>();
public V put(K key, V value)
{
V return_value = this.get(key);
if(map.containsKey(key))
map.get(key).add(value);
else
{
ArrayList<V> newList = new ArrayList<V>();
newList.add(value);
map.put(key, newList);
}
return return_value;
}
public V get(K key)
{
if(map.containsKey(key))
return map.get(key).get(map.get(key).size());
return null;
}
public int size()
{
return map.size();
}
public V remove(K key)
{
V return_value = this.get(key);
if(map.containsKey(key))
if(map.get(key).size() > 1)
map.get(key).remove(map.get(key).size());
else
map.remove(key);
return return_value;
}
public int count(K key)
{
if(map.containsKey(key))
return map.get(key).size();
return 0;
}
public V get(K key, int n)
{
if(map.containsKey(key))
if(map.get(key).size() > n)
return map.get(key).get(map.get(key).size() - n - 1);
return null;
}
}
[/Java]
da ich aber noch Anfänger bin, wird das sicher nicht perfekt sein, könntet ihr mir sagen, wo da noch was zu verbessern ist, bzw wo was nicht so schön ist usw ...
Zuletzt bearbeitet: