-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAssociativeArray.java
More file actions
57 lines (51 loc) · 1.26 KB
/
AssociativeArray.java
File metadata and controls
57 lines (51 loc) · 1.26 KB
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
package btp.oneP;
public class AssociativeArray<K,V>{
public static void main(String[] args) {
AssociativeArray<String,String> map = new AssociativeArray<String,String>(6);
map.put("sky", "blue");
map.put("grass", "green");
map.put("ocean", "dancing");
map.put("tree", "tall");
map.put("earth", "brown");
map.put("sun", "warm");
try{
map.put("extra", "object");
}catch(Exception e){
System.out.println(e);
}
System.out.println(map);
System.out.println(map.get("ocean"));
}
private Object[][] pair;
private int index;
public AssociativeArray(int length){
pair = new Object[length][2];
}
public void put(K key,V value){
if(index >= pair.length){
throw new ArrayIndexOutOfBoundsException();
}
pair[index++] = new Object[]{key,value};
}
@SuppressWarnings("unchecked")
public V get(K key){
for(int i=0;i<pair.length;i++){
if(key.equals(pair[i][0])){
return (V)pair[i][1];
}
}
return null;
}
public String toString(){
StringBuilder sb = new StringBuilder();
for(int i=0;i<index;i++){
sb.append(pair[i][0].toString());
sb.append(" : ");
sb.append(pair[i][1].toString());
if(i<index-1){
sb.append("\n");
}
}
return sb.toString();
}
}