/**
*
* @param userID
* @param statBitIdx:把statBitIdx位改为1
*/
protected void setUserState(int userID, final int statBitIdx)
{
Integer ustat = this.userStat.get(userID);
if(ustat == null)
{
ustat = 0;
}
ustat |= (1 << statBitIdx);
this.userStat.put(userID, ustat);
}
/**
*
* @param userID
* @param statBitIdx:把statBitIdx位改为0
*/
protected void clearUserState(int userID, final int statBitIdx)
{
Integer ustat = this.userStat.get(userID);
if(ustat == null)
{
return ;
}
ustat = (ustat & (~(1 << statBitIdx)));
this.userStat.put(userID, ustat);
}
/**
*
* @param userID
* @param statBitIdx:判断statBitIdx为是否为1
* @return
*/
protected boolean hasUserState(int userID, final int statBitIdx)
{
Integer ustat = this.userStat.get(userID);
if(ustat == null)
{
return false;
}
return (ustat & (1 << statBitIdx)) != 0;
}
本文介绍了一种使用位操作管理用户状态的方法,通过设置、清除和检查特定位来更新和读取用户状态,这是一种高效且节省内存的技术。
623

被折叠的 条评论
为什么被折叠?



