关于hashmap 的问题

zsh13115922701 2016-05-21 09:49:26
由于目前还不会jdbc,所以我用了一个hashmap在服务器中存放用户名和密码。
服务器为多线程,但并没有在多线程中put hashmap,只用了containskey 和get方法,但返回值为不存在。为什么
...全文
141 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰心的小屋 2016-05-22
  • 打赏
  • 举报
回复
package com.ice.home.web;

import org.apache.commons.lang.StringUtils;

import java.util.HashMap;
import java.util.Map;

public class HashMapTest {
    private static final Map<String, String> map;
    
    static {
        map = new HashMap<>();
        map.put("user1", "password1");
        // ....
    }
    
    public static boolean exists(String user){
        if(StringUtils.isEmpty(user)){
            return false;
        }
        
        return map.containsKey(user);
    }
    
    public static String getPassword(String user){
        if(StringUtils.isNotEmpty(user) && map.containsKey(user)){
            return map.get(user);
        }
        
        return null;
    }
}
欢迎光临我的博客 http://happyshome.cn
sky_lkh 2016-05-22
  • 打赏
  • 举报
回复
如2楼说的,没有key?debug或者打印一下所有的key 是不是存在
oxcow 2016-05-22
  • 打赏
  • 举报
回复
如果你的代码还是找不到KEY,那么你最好DEBUG调试下,看你的值有没有存进入,跟踪下……
oxcow 2016-05-22
  • 打赏
  • 举报
回复
引用 楼主 zsh13115922701 的回复:
由于目前还不会jdbc,所以我用了一个hashmap在服务器中存放用户名和密码。 服务器为多线程,但并没有在多线程中put hashmap,只用了containskey 和get方法,但返回值为不存在。为什么
你的HashMap必须是全局唯一的,不能每次都是一个新的对象。也就是说你的HashMap在程序启动是已经存在的。大概如下这样
class MapDB{
private static Map<String,String> dbMap = new HashMap<>();

publivc void addToDb(String key,String value){
    dbMap.put(key,value)
} 

}

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧