Commit 155d883b authored by liujiahua123123's avatar liujiahua123123

SynchronizedLinkedListMap

parent 5fd84411
package net.mamoe.mirai.utils.config; package net.mamoe.mirai.utils.config;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.Collections;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
import java.util.SortedMap;
public class MiraiConfigSection<T> extends MiraiSynchronizedLInkedListMap<String, T> { public class MiraiConfigSection<T> extends MiraiSynchronizedLinkedListMap<String, T> {
public MiraiConfigSection(){ public MiraiConfigSection(){
......
...@@ -6,10 +6,13 @@ import org.jetbrains.annotations.NotNull; ...@@ -6,10 +6,13 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.*; import java.util.*;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.Function;
public class MiraiSynchronizedLInkedListMap<K,V> extends AbstractMap<K,V> { public class MiraiSynchronizedLinkedListMap<K,V> extends AbstractMap<K,V> {
public MiraiSynchronizedLInkedListMap(){ public MiraiSynchronizedLinkedListMap(){
this.sortedMap = Collections.synchronizedMap(new LinkedHashMap<>()); this.sortedMap = Collections.synchronizedMap(new LinkedHashMap<>());
} }
...@@ -88,6 +91,65 @@ public class MiraiSynchronizedLInkedListMap<K,V> extends AbstractMap<K,V> { ...@@ -88,6 +91,65 @@ public class MiraiSynchronizedLInkedListMap<K,V> extends AbstractMap<K,V> {
return this.sortedMap.toString(); return this.sortedMap.toString();
} }
@Override
public V getOrDefault(Object key, V defaultValue) {
return this.sortedMap.getOrDefault(key,defaultValue);
}
@Override
public void forEach(BiConsumer<? super K, ? super V> action) {
this.sortedMap.forEach(action);
}
@Override
public boolean replace(K key, V oldValue, V newValue) {
return this.sortedMap.replace(key,oldValue,newValue);
}
@Nullable
@Override
public V replace(K key, V value) {
return this.sortedMap.replace(key,value);
}
@Override
public void replaceAll(BiFunction<? super K, ? super V, ? extends V> function) {
this.sortedMap.replaceAll(function);
}
@Override
public V compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction) {
return this.sortedMap.compute(key,remappingFunction);
}
@Override
public V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction) {
return this.sortedMap.computeIfAbsent(key,mappingFunction);
}
@Override
public V computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction) {
return this.sortedMap.computeIfPresent(key,remappingFunction);
}
@Override
public int hashCode() {
return this.sortedMap.hashCode();
}
@Nullable
@Override
public V putIfAbsent(K key, V value) {
return this.sortedMap.putIfAbsent(key,value);
}
@Override
public V merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction) {
return this.sortedMap.merge(key,value,remappingFunction);
}
@Override
public boolean equals(Object o) {
return this.sortedMap.equals(o);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment