还是直接上代码 :(有代码应该木有需要解释的地方了吧,写的仓促,删减了一些东西,见谅)

  1. import java.util.Date; 
  2. import java.util.Enumeration; 
  3. import java.util.concurrent.ConcurrentHashMap; 
  4.  
  5. public class OLUser { 
  6.  
  7. // 这个是线程安全的
  8.     private static ConcurrentHashMap<String,LoginUser> userMap = new ConcurrentHashMap<String,LoginUser>(); 
  9.  
  10. // 插入一条数据
  11.     public static void insert(String userid, LoginUser luser){
  12. // 预防一些意外的重复执行,加了一个线程锁
  13.         synchronized (OLUser.class){ 
  14.             userMap.put(userid, luser); 
  15.         } 
  16.     }
  17. // 得到用户数量
  18.     public static int getUserNum(){ 
  19.         return userMap.size(); 
  20.     } 
  21. // 查找用户是否存在
  22.     public static boolean findUser (String userid) { 
  23.         if (userMap.containsKey(userid)) { 
  24.             return true; 
  25.         } else { 
  26.             return false; 
  27.         } 
  28.     } 
  29. // 得到用户登录信息
  30.     public static LoginUser getLoginUser(String userid){ 
  31.         LoginUser lu = new LoginUser(); 
  32.         if (userMap.containsKey(userid)) { 
  33.             lu = userMap.get(userid); 
  34.         } 
  35.         return lu; 
  36.     } 
  37. // 删除
  38.     public static void delete(String userid) { 
  39.         if (userMap.containsKey(userid)){ 
  40.             synchronized (OLUser.class){ 
  41.                 userMap.remove(userid); 
  42.             } 
  43.         } 
  44.     }
  45. // 更新
  46.     public static void update(String userid, LoginUser luser){ 
  47.         insert(userid, luser); 
  48.     } 
  49. // 打印所有信息
  50.     @SuppressWarnings("unchecked") 
  51.     public static void print() { 
  52.         Enumeration keys = userMap.keys(); 
  53.         while (keys.hasMoreElements()) { 
  54.             String key = keys.nextElement().toString(); 
  55.             System.out.println(key + " = " + getLoginUser(key).getUserID()); 
  56.         } 
  57.     } 

主程序大概就这样子了。应该蛮清晰明了的