HashMap
parent
53111eeee3
commit
61704f40c7
11
.classpath
11
.classpath
|
@ -1,6 +1,15 @@
|
||||||
<?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"/>
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="module" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
<classpathentry kind="src" path="Programmierung2/src"/>
|
<classpathentry kind="src" path="Programmierung2/src"/>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="module" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
<classpathentry kind="output" path="bin"/>
|
<classpathentry kind="output" path="bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
package Hashmap;
|
||||||
|
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
|
||||||
|
public class Hashmap {
|
||||||
|
|
||||||
|
/* Was ist das? ist ein Array(Array ist HashMap) auf Entry(Entry ist LinkedList)
|
||||||
|
*
|
||||||
|
* - Eine HashMap in Java ist eine spezielle Datenstruktur, die eine schnelle Speicherung und
|
||||||
|
* den schnellen Zugriff auf Daten ermöglicht, indem sie Schlüssel-Wert-Paare speichert.
|
||||||
|
*
|
||||||
|
* - akzeptiert zwei generische Parameter: HashMap<K, V>, wobei K der Schlüsseltyp und V der Werttyp ist.
|
||||||
|
* -
|
||||||
|
* - mit Hashmap kann ich:
|
||||||
|
* . suchen: O(1)
|
||||||
|
* . einfügen: O(1)
|
||||||
|
* . lösche: O(1)
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
package Hashmap;
|
||||||
|
|
||||||
|
public class MyGenericHashMap <K,V>{
|
||||||
|
|
||||||
|
K key;
|
||||||
|
V value;
|
||||||
|
|
||||||
|
final int SIZE = 10;
|
||||||
|
Object[] table;
|
||||||
|
|
||||||
|
public MyGenericHashMap() {
|
||||||
|
table = new Object[SIZE];
|
||||||
|
}
|
||||||
|
|
||||||
|
private int Hashadresse(int key) {
|
||||||
|
return key % SIZE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void put(K key, V value) {
|
||||||
|
int index = 0;
|
||||||
|
|
||||||
|
// wenn key int,double,float ist, wird auf integer Wert umgewandelt
|
||||||
|
if (key instanceof Number)
|
||||||
|
index = Hashadresse(((Number) key).intValue());
|
||||||
|
|
||||||
|
else if(key instanceof Character)
|
||||||
|
index =(Character) key - 'a';
|
||||||
|
|
||||||
|
table[index] = value;
|
||||||
|
|
||||||
|
System.out.println("[" + index + "]: " + table[index]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
MyGenericHashMap <Integer,String> t1 = new MyGenericHashMap<>();
|
||||||
|
t1.put(112, "hallo");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
package Hashmap;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class MyHashMap {
|
||||||
|
|
||||||
|
int key;
|
||||||
|
String value;
|
||||||
|
|
||||||
|
// Ein Array von MyHashMap-Objekten erstellen
|
||||||
|
String table[];
|
||||||
|
final int SIZE =10;
|
||||||
|
|
||||||
|
// Konstruktor, der das Array initialisiert
|
||||||
|
public MyHashMap() {
|
||||||
|
table = new String[SIZE]; //Array mit 10 MyHashMap-Objekten erstellen
|
||||||
|
this.key = 0;
|
||||||
|
this.value = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private int Hashadresse(int key) {
|
||||||
|
return key % table.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void put(int key, String value) {
|
||||||
|
int index = Hashadresse(key);
|
||||||
|
table[index] = value;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void getValue(int key) {
|
||||||
|
int index = Hashadresse(key);
|
||||||
|
System.out.println(table[index]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printHashMap() {
|
||||||
|
for (int i = 0; i < table.length; i++) {
|
||||||
|
System.out.println("[" + i + "]" + " : " + table[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isEmpty(int key) {
|
||||||
|
int index = Hashadresse(key);
|
||||||
|
|
||||||
|
if (table[index] == null)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
MyHashMap m1 = new MyHashMap();
|
||||||
|
m1.put(14, "Schrank");
|
||||||
|
m1.put(12, "Sofa");
|
||||||
|
m1.put(8, "TV");
|
||||||
|
m1.printHashMap();
|
||||||
|
m1.getValue(14);
|
||||||
|
|
||||||
|
System.out.println(m1.isEmpty(9));
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,20 +3,23 @@ package Teste;
|
||||||
public class kopieArray {
|
public class kopieArray {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
/*
|
// /*
|
||||||
* das ein falsches Verfahren, um ein Array in einem anderen Array
|
// * das ein falsches Verfahren, um ein Array in einem anderen Array
|
||||||
* zu koopieren, in dem Fall kopieArray ist ein RefrenzVariable, die auf das selbe Array zeigt
|
// * zu koopieren, in dem Fall kopieArray ist ein RefrenzVariable, die auf das selbe Array zeigt
|
||||||
* also wir haben nur ein Array und auf diese Array zeigen zwei RefrenzVariable
|
// * also wir haben nur ein Array und auf diese Array zeigen zwei RefrenzVariable
|
||||||
*/
|
// */
|
||||||
int[] orgArray = {1,2,3,4,5};
|
// int[] orgArray = {1,2,3,4,5};
|
||||||
int[] kopieArray = orgArray;
|
// int[] kopieArray = orgArray;
|
||||||
|
//
|
||||||
|
// /*
|
||||||
|
// * Richtige Kopie von Array
|
||||||
|
// */
|
||||||
|
// int[] richtigeKopieArray = new int[orgArray.length];
|
||||||
|
// for (int i = 0; i <orgArray.length; i++)
|
||||||
|
// richtigeKopieArray[i] = orgArray[i];
|
||||||
|
//
|
||||||
|
System.out.println(2 % 7);
|
||||||
|
|
||||||
/*
|
|
||||||
* Richtige Kopie von Array
|
|
||||||
*/
|
|
||||||
int[] richtigeKopieArray = new int[orgArray.length];
|
|
||||||
for (int i = 0; i <orgArray.length; i++)
|
|
||||||
richtigeKopieArray[i] = orgArray[i];
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -3,13 +3,18 @@ package oop.Generics;
|
||||||
public class Generics {
|
public class Generics {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generics ist ein Konzept in der Programmierung, das es ermöglicht, Klassen, Methoden und Schnittstellen so zu schreiben
|
* - Generics ist ein Konzept in der Programmierung, das es ermöglicht, Klassen, Methoden und Schnittstellen so zu schreiben
|
||||||
* ,dass sie mit beliebigen Datentypen arbeiten können.
|
* ,dass sie mit beliebigen Datentypen arbeiten können.
|
||||||
* Anstatt festzulegen, dass eine Klasse oder Methode nur mit einem bestimmten Datentyp (z.B. int, String) arbeiten kann
|
* Anstatt festzulegen, dass eine Klasse oder Methode nur mit einem bestimmten Datentyp (z.B. int, String) arbeiten kann
|
||||||
* ,können Generics verwendet werden, um den Datentyp flexibel zu gestalten.
|
* ,können Generics verwendet werden, um den Datentyp flexibel zu gestalten.
|
||||||
*
|
*
|
||||||
* Generic wird durch: Namen ein Typparameter in spitzen Klammern (<>) angegeben wird
|
* - Generic wird durch: Namen ein Typparameter in spitzen Klammern (<>) angegeben wird
|
||||||
*
|
* - Generic akzptiert keine Primitiven Daten Typen
|
||||||
|
* - Generic Variable (Platzhalter):
|
||||||
|
* . T (Steht für Typ)
|
||||||
|
* . E (Element)
|
||||||
|
* . K (Key)
|
||||||
|
* . V (Value)
|
||||||
* Generic funktionert mit:
|
* Generic funktionert mit:
|
||||||
* 1. Klassen: (public class Box<T>)
|
* 1. Klassen: (public class Box<T>)
|
||||||
* 2. Methoden: (public static <T> void printArray(T[] array))
|
* 2. Methoden: (public static <T> void printArray(T[] array))
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
package oop.Generics;
|
||||||
|
|
||||||
|
public class Pocket<T> {
|
||||||
|
|
||||||
|
private T value;
|
||||||
|
public Pocket() {}
|
||||||
|
|
||||||
|
public Pocket(T value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public T getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValue(T value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Pocket [value=" + value + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Pocket<Pocket<String>> pocketOfPockets = new Pocket<>();
|
||||||
|
pocketOfPockets.setValue(new Pocket<String>());
|
||||||
|
pocketOfPockets.getValue().setValue("Innere Pocket");
|
||||||
|
System.out.println(pocketOfPockets.getValue().getValue());
|
||||||
|
//-----------------------------------------------------------------
|
||||||
|
Pocket<String>[] pocket = new Pocket[10]; // mit 10 Plätzen
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue