javacurrentmap_Java ConcurrentHashMap.forEach方法代码示例
import java.util.concurrent.ConcurrentHashMap; //導(dǎo)入方法依賴的package包/類
public static void main(String[] args) {
ConcurrentHashMap> userHash = new ConcurrentHashMap<>();
HashFiller hashFiller = new HashFiller(userHash);
Thread[] threads = new Thread[10];
for (int i = 0; i < 10; i++) {
threads[i] = new Thread(hashFiller);
threads[i].start();
}
for (int i = 0; i < 10; i++) {
try {
threads[i].join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.printf("Size: %d\n", userHash.size());
userHash.forEach(10, (user, list) -> {
System.out.printf("%s: %s: %d\n", Thread.currentThread().getName(), user, list.size());
});
userHash.forEachEntry(10, entry -> {
System.out.printf("%s: %s: %d\n", Thread.currentThread().getName(), entry.getKey(),
entry.getValue().size());
});
Operation op = userHash.search(10, (user, list) -> {
for (Operation operation : list) {
if (operation.getOperation().endsWith("1")) {
return operation;
}
}
return null;
});
System.out.printf("The operation we have found is: %s, %s, %s,\n", op.getUser(), op.getOperation(),
op.getTime());
ConcurrentLinkedDeque operations = userHash.search(10, (user, list) -> {
if (list.size() > 10) {
return list;
}
return null;
});
System.out.printf("The user we have found is: %s: %d operations\n", operations.getFirst().getUser(),
operations.size());
int totalSize = userHash.reduce(10, (user, list) -> {
return list.size();
}, (n1, n2) -> {
return n1 + n2;
});
System.out.printf("The total size is: %d\n", totalSize);
}
總結(jié)
以上是生活随笔為你收集整理的javacurrentmap_Java ConcurrentHashMap.forEach方法代码示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wow mysql dbc_DBC中悲观
- 下一篇: matlab制作打地鼠游戏,scratc