62,634
社区成员




import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
public class StaticVar {
private static Map<String, Object> map;
public static synchronized Map<String, Object> getMap() {
if(map==null||map.isEmpty()){
map=Collections.synchronizedMap(new HashMap<String, Object>());
}
return map;
}
public static synchronized boolean addItem(String key,Object value) {
boolean result=false;
if(!getMap().containsKey(key)&&value!=null){
getMap().put(key, value);
result=true;
}
return result;
}
public static synchronized boolean removeItem(String key,Object value) {
boolean result=false;
if(key!=null&&!"".equals(key)){
if(getMap().containsKey(key)){
getMap().remove(key);
result=true;
}
}else if(value!=null) {
if (getMap().containsValue(value)) {
List<String> removeKeys=new ArrayList<String>();
for (Entry<String, Object> entry : getMap().entrySet()) {
if(value.equals(entry.getValue())){
removeKeys.add(entry.getKey()); // 这里如果直接删的话,整个map的遍历将报错
}
}
for (String rmKey : removeKeys) {
getMap().remove(rmKey);
}
}
}
return result;
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
public class StaticVar {
private static Map<String, Object> map;
public static HashMap<String,Integer> mapobj;
public static synchronized Map<String, Object> getMap() {
if(map==null||map.isEmpty()){
map=Collections.synchronizedMap(new HashMap<String, Object>());
}
return map;
}
public static synchronized Object getValue(String key) {
if(key==null||key==""){//key 为空值
throw new RuntimeException("Key can't be empty");
}
return map.get(key);
}
public static synchronized boolean addItem(String key,Object value) {
boolean result=false;
if(!getMap().containsKey(key)&&value!=null){
getMap().put(key, value);
result=true;
}
return result;
}
public static synchronized boolean removeItem(String key,Object value) {
boolean result=false;
if(key!=null&&!"".equals(key)){
if(getMap().containsKey(key)){
getMap().remove(key);
result=true;
}
}else if(value!=null) {
if (getMap().containsValue(value)) {
List<String> removeKeys=new ArrayList<String>();
for (Entry<String, Object> entry : getMap().entrySet()) {
if(value.equals(entry.getValue())){
removeKeys.add(entry.getKey()); // 这里如果直接删的话,整个map的遍历将报错
}
}
for (String rmKey : removeKeys) {
getMap().remove(rmKey);
}
}
}
return result;
}
public static synchronized HashMap<String, Integer> getMapObj() {
if(mapobj==null||mapobj.isEmpty()){
mapobj=Collections.synchronizedMap(new HashMap<String, Integer>());
}
return mapobj;
}
public static synchronized boolean addItemObj(String key,Integer value) {
boolean result=false;
if(!getMap().containsKey(key)&&value!=null){
getMap().put(key, value);
result=true;
}
return result;
}
public static synchronized boolean removeItemObj(String key,Integer value) {
boolean result=false;
if(key!=null&&!"".equals(key)){
if(getMap().containsKey(key)){
getMap().remove(key);
result=true;
}
}else if(value!=null) {
if (getMap().containsValue(value)) {
List<String> removeKeys=new ArrayList<String>();
for (Entry<String, Object> entry : getMap().entrySet()) {
if(value.equals(entry.getValue())){
removeKeys.add(entry.getKey()); // 这里如果直接删的话,整个map的遍历将报错
}
}
for (String rmKey : removeKeys) {
getMap().remove(rmKey);
}
}
}
return result;
}
public static synchronized Integer getValueObj(String key) {
if(key==null||key==""){//key 为空值
throw new RuntimeException("Key can't be empty");
}
return mapobj.get(key);
}
}
List<String> removeKeys=new ArrayList<String>();
for (Entry<String, Object> entry : getMap().entrySet()) {
if(value.equals(entry.getValue())){
removeKeys.add(entry.getKey()); // 这里如果直接删的话,整个map的遍历将报错
}
}
for (String rmKey : removeKeys) {
getMap().remove(rmKey);
}
改为如下形式
Iterator it = getMap().keySet().iterator();
Map.Entry entry = null;
while(it.hasNext()) {
entry = (Entry) it.next();
if (value.equals(entry.getValue())) {
it.remove();
}
}
楼主试试效果