小编Abh*_*bhi的帖子

32位数的1

我正在寻找一种方法,在32位数字中使用1的数字而不使用其间的循环.任何人都可以帮助我,并为我提供代码或算法.提前致谢.

java algorithm bit-manipulation

15
推荐指数
3
解决办法
9426
查看次数

java中正数和负数十进制的正则表达式

正负十进制值的正则表达式,以便可以使用模式和匹配器匹配字符串,以便正确实现,任何人都可以为我提供

java regex

5
推荐指数
2
解决办法
4万
查看次数

Hashcode比较问题

我有一个对象的列表,在我们的例子中被称为规则,这个对象本身是一个字段列表,我必须对其进行哈希码比较,因为我们不能在系统中复制规则.

即假设我有两个规则R1和R2,字段为A和B.

现在,如果R1中A和B的值分别为7和2.

在R2中它分别是3和4然后我用来检查系统中规则的重复性的过程是哈希码比较失败

我使用的方法是

for(Rule rule : rules){
changeableAttrCode=0;

fieldCounter=1;

attributes = rule.getAttributes();

for(RuleField ruleField : attributes){

changeableAttrCode = changeableAttrCode + (fieldCounter * ruleField.getValue().hashCode());

fieldCounter++;

}
parameters = rule.getParameters();

for(RuleField ruleField : parameters){

changeableAttrCode = changeableAttrCode + (fieldCounter * ruleField.getValue().hashCode());

fieldCounter++;

}

changeableAttrCodes.add(changeableAttrCode);
Run Code Online (Sandbox Code Playgroud)

这里是changeableAttrCodes,我们存储所有规则的哈希码.

那么请建议我更好的方法,以便将来不会出现这种问题,也可以看出系统中的规则错误.

提前致谢

java hashcode

1
推荐指数
1
解决办法
1008
查看次数

线程局部变量为空

我试图通过线程执行在 run 方法中打印线程局部变量,但它显然为空。请查找代码获取信息---

public class EvenAndOdd implements Runnable{

public EvenAndOdd() {

}

public  static void setThreadContext(){
 threadLocal.set(3);
 eventhreadLocal.set(2);
}
 private static ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>();
 private static ThreadLocal<Integer> eventhreadLocal = new ThreadLocal<Integer>(); 

@Override
public void run() {
    System.out.println(threadLocal.get());
    System.out.println(eventhreadLocal.get());
}

}
Run Code Online (Sandbox Code Playgroud)

// 现在是用于创建线程并调用 run 方法的类

public class PrintNumber {
public static void main(String[] args) {

    EvenAndOdd evenAndOdd =new EvenAndOdd();
    EvenAndOdd.setThreadContext();
    Thread printThread = new Thread(evenAndOdd);
    printThread.start();

}
}
Run Code Online (Sandbox Code Playgroud)

问题陈述 --- 线程的执行给了我 null 而不是 2 和 3

java multithreading thread-local

1
推荐指数
1
解决办法
4428
查看次数