Skip to content

Commit f37306d

Browse files
committed
make interface like Java Map
1 parent 0a5c900 commit f37306d

File tree

1 file changed

+21
-19
lines changed

1 file changed

+21
-19
lines changed

src/main/java/DiscUtils/Core/Internal/ObjectCache.java

+21-19
Original file line numberDiff line numberDiff line change
@@ -77,20 +77,21 @@ public V get(K key) {
7777
return null;
7878
}
7979

80-
_entries.put(key, new WeakReference<>(value));
8180
public V put(K key, V value) {
81+
WeakReference<V> v = _entries.put(key, new WeakReference<>(value));
8282
makeMostRecent(key, value);
8383
pruneEntries();
84+
return v != null ? v.get() : null;
8485
}
8586

86-
public void remove(K key) {
87+
public V remove(Object key) {
8788
for (int i = 0; i < _recent.size(); ++i) {
8889
if (_recent.get(i).getKey().equals(key)) {
8990
_recent.remove(i);
9091
break;
9192
}
9293
}
93-
_entries.remove(key);
94+
return _entries.remove(key).get();
9495
}
9596

9697
private void pruneEntries() {
@@ -126,20 +127,21 @@ private void makeMostRecent(K key, V val) {
126127
_recent.add(0, new Tuple<>(key, val));
127128
}
128129

129-
public String toString() {
130-
StringBuilder sb = new StringBuilder();
131-
sb.append("[");
132-
sb.append(_entries.size());
133-
sb.append("]");
134-
sb.append("{");
135-
_entries.entrySet().forEach(e -> {
136-
sb.append(e.getKey());
137-
sb.append('=');
138-
sb.append(e.getValue().get());
139-
sb.append(", ");
140-
});
141-
sb.setLength(sb.length() - 2);
142-
sb.append("}");
143-
return sb.toString();
144-
}
130+
@Override
131+
public String toString() {
132+
StringBuilder sb = new StringBuilder();
133+
sb.append("[");
134+
sb.append(_entries.size());
135+
sb.append("]");
136+
sb.append("{");
137+
_entries.entrySet().forEach(e -> {
138+
sb.append(e.getKey());
139+
sb.append('=');
140+
sb.append(e.getValue().get());
141+
sb.append(", ");
142+
});
143+
sb.setLength(sb.length() - 2);
144+
sb.append("}");
145+
return sb.toString();
146+
}
145147
}

0 commit comments

Comments
 (0)