Skip to content

Commit 05c8ef5

Browse files
committed
todo SynchronizedInt2ObjLinkedHashMap, SynchronizedObj2ObjLinkedHashMap
1 parent 65cc045 commit 05c8ef5

File tree

2 files changed

+268
-0
lines changed

2 files changed

+268
-0
lines changed
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
package com.trivago.fastutilconcurrentwrapper.intkey;
2+
3+
import it.unimi.dsi.fastutil.ints.Int2ObjectFunction;
4+
import it.unimi.dsi.fastutil.ints.Int2ObjectLinkedOpenHashMap;
5+
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
6+
import it.unimi.dsi.fastutil.ints.IntSet;
7+
import it.unimi.dsi.fastutil.objects.ObjectCollection;
8+
import it.unimi.dsi.fastutil.objects.ObjectSet;
9+
10+
import java.util.Map;
11+
import java.util.concurrent.locks.ReadWriteLock;
12+
import java.util.concurrent.locks.ReentrantReadWriteLock;
13+
import java.util.function.BiFunction;
14+
import java.util.function.IntFunction;
15+
16+
/**
17+
@see java.util.Collections#synchronizedMap(Map)
18+
@see java.util.LinkedHashMap
19+
@see it.unimi.dsi.fastutil.ints.Int2ObjectLinkedOpenHashMap
20+
*/
21+
public class SynchronizedInt2ObjLinkedHashMap<V> implements Int2ObjectMap<V> {
22+
final Int2ObjectLinkedOpenHashMap<V> m;
23+
final ReadWriteLock lock = new ReentrantReadWriteLock();
24+
25+
public SynchronizedInt2ObjLinkedHashMap (int expected, float f) {
26+
m = new Int2ObjectLinkedOpenHashMap<>(expected, f);
27+
}//new
28+
29+
public SynchronizedInt2ObjLinkedHashMap () {
30+
m = new Int2ObjectLinkedOpenHashMap<>();
31+
}//new
32+
33+
@Override
34+
public int size () {
35+
return 0;
36+
}
37+
38+
@Override
39+
public void defaultReturnValue (V rv) {
40+
41+
}
42+
43+
@Override
44+
public V defaultReturnValue () {
45+
return null;
46+
}
47+
48+
@Override
49+
public ObjectSet<Entry<V>> int2ObjectEntrySet () {
50+
return null;
51+
}
52+
53+
@Override
54+
public IntSet keySet () {
55+
return null;
56+
}
57+
58+
@Override
59+
public ObjectCollection<V> values () {
60+
return null;
61+
}
62+
63+
@Override
64+
public boolean containsKey (int key) {
65+
return false;
66+
}
67+
68+
@Override
69+
public V get (int key) {
70+
return null;
71+
}
72+
73+
@Override
74+
public boolean isEmpty () {
75+
return false;
76+
}
77+
78+
@Override
79+
public boolean containsValue (Object value) {
80+
return false;
81+
}
82+
83+
@Override
84+
public void putAll (Map<? extends Integer,? extends V> m) {
85+
86+
}
87+
88+
@Override
89+
public void clear () {
90+
Int2ObjectMap.super.clear();
91+
}
92+
93+
@Override
94+
public boolean remove (int key, Object value) {
95+
return Int2ObjectMap.super.remove(key, value);
96+
}
97+
98+
@Override
99+
public boolean replace (int key, V oldValue, V newValue) {
100+
return Int2ObjectMap.super.replace(key, oldValue, newValue);
101+
}
102+
103+
@Override
104+
public V replace (int key, V value) {
105+
return Int2ObjectMap.super.replace(key, value);
106+
}
107+
108+
@Override
109+
public V computeIfAbsent (int key, IntFunction<? extends V> mappingFunction) {
110+
return Int2ObjectMap.super.computeIfAbsent(key, mappingFunction);
111+
}
112+
113+
@Override
114+
public V computeIfAbsent (int key, Int2ObjectFunction<? extends V> mappingFunction) {
115+
return Int2ObjectMap.super.computeIfAbsent(key, mappingFunction);
116+
}
117+
118+
@Override
119+
public V computeIfPresent (int key, BiFunction<? super Integer,? super V,? extends V> remappingFunction) {
120+
return Int2ObjectMap.super.computeIfPresent(key, remappingFunction);
121+
}
122+
123+
@Override
124+
public V compute (int key, BiFunction<? super Integer,? super V,? extends V> remappingFunction) {
125+
return Int2ObjectMap.super.compute(key, remappingFunction);
126+
}
127+
128+
@Override
129+
public V merge (int key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction) {
130+
return Int2ObjectMap.super.merge(key, value, remappingFunction);
131+
}
132+
}
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
package com.trivago.fastutilconcurrentwrapper.objkey;
2+
3+
import it.unimi.dsi.fastutil.ints.Int2ObjectLinkedOpenHashMap;
4+
import it.unimi.dsi.fastutil.objects.Object2ObjectFunction;
5+
import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap;
6+
import it.unimi.dsi.fastutil.objects.Object2ObjectMap;
7+
import it.unimi.dsi.fastutil.objects.ObjectCollection;
8+
import it.unimi.dsi.fastutil.objects.ObjectSet;
9+
10+
import java.util.Map;
11+
import java.util.concurrent.locks.ReadWriteLock;
12+
import java.util.concurrent.locks.ReentrantReadWriteLock;
13+
import java.util.function.BiFunction;
14+
15+
/**
16+
@see java.util.Collections#synchronizedMap(Map)
17+
@see java.util.LinkedHashMap
18+
@see Int2ObjectLinkedOpenHashMap
19+
*/
20+
public class SynchronizedObj2ObjLinkedHashMap<K,V> implements Object2ObjectMap<K, V> {
21+
final Object2ObjectLinkedOpenHashMap<K,V> m;
22+
final ReadWriteLock lock = new ReentrantReadWriteLock();
23+
24+
public SynchronizedObj2ObjLinkedHashMap (int expected, float f) {
25+
m = new Object2ObjectLinkedOpenHashMap<>(expected, f);
26+
}//new
27+
28+
public SynchronizedObj2ObjLinkedHashMap () {
29+
m = new Object2ObjectLinkedOpenHashMap<>();
30+
}//new
31+
32+
@Override
33+
public int size () {
34+
return 0;
35+
}
36+
37+
@Override
38+
public void defaultReturnValue (V rv) {
39+
40+
}
41+
42+
@Override
43+
public V defaultReturnValue () {
44+
return null;
45+
}
46+
47+
@Override
48+
public ObjectSet<Entry<K,V>> object2ObjectEntrySet () {
49+
return null;
50+
}
51+
52+
@Override
53+
public ObjectSet<K> keySet () {
54+
return null;
55+
}
56+
57+
@Override
58+
public ObjectCollection<V> values () {
59+
return null;
60+
}
61+
62+
@Override
63+
public boolean containsKey (Object key) {
64+
return false;
65+
}
66+
67+
@Override
68+
public V get (Object key) {
69+
return null;
70+
}
71+
72+
@Override
73+
public boolean isEmpty () {
74+
return false;
75+
}
76+
77+
@Override
78+
public boolean containsValue (Object value) {
79+
return false;
80+
}
81+
82+
@Override
83+
public void putAll (Map<? extends K,? extends V> m) {
84+
85+
}
86+
87+
@Override
88+
public void clear () {
89+
Object2ObjectMap.super.clear();
90+
}
91+
92+
@Override
93+
public V put (K key, V value) {
94+
return Object2ObjectMap.super.put(key, value);
95+
}
96+
97+
@Override
98+
public V remove (Object key) {
99+
return Object2ObjectMap.super.remove(key);
100+
}
101+
102+
@Override
103+
public boolean replace (K key, V oldValue, V newValue) {
104+
return Object2ObjectMap.super.replace(key, oldValue, newValue);
105+
}
106+
107+
@Override
108+
public boolean remove (Object key, Object value) {
109+
return Object2ObjectMap.super.remove(key, value);
110+
}
111+
112+
@Override
113+
public V replace (K key, V value) {
114+
return Object2ObjectMap.super.replace(key, value);
115+
}
116+
117+
@Override
118+
public V computeIfAbsent (K key, Object2ObjectFunction<? super K,? extends V> mappingFunction) {
119+
return Object2ObjectMap.super.computeIfAbsent(key, mappingFunction);
120+
}
121+
122+
@Override
123+
public V computeIfPresent (K key, BiFunction<? super K,? super V,? extends V> remappingFunction) {
124+
return Object2ObjectMap.super.computeIfPresent(key, remappingFunction);
125+
}
126+
127+
@Override
128+
public V compute (K key, BiFunction<? super K,? super V,? extends V> remappingFunction) {
129+
return Object2ObjectMap.super.compute(key, remappingFunction);
130+
}
131+
132+
@Override
133+
public V merge (K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction) {
134+
return Object2ObjectMap.super.merge(key, value, remappingFunction);
135+
}
136+
}

0 commit comments

Comments
 (0)