我有一个评估树的类。每个节点都有严格顺序的子节点。服务器具有这样的树的列表。
当客户端成功连接到服务器时,它会将许多不同的HashMaps发送到选定的树中进行计算。典型的HashMap有两个值对:变量字符串名称,变量整数值。
每个TreeNode都有一个复杂的条件,它可以读取变量,并与其他变量或数字进行AND、OR、XOR等运算。每个TreeNode也有语句,可以读/写变量,并将新变量放入HashMap,随后可以在另一个TreeNode中读/写这些变量。
以下是树的简化结构:
public static class TreeNode {
public static abstract c
在java 8中,我知道他们添加了并行流,它利用了多核处理器的优势,我知道你可以这样使用它:
List<String> list = new ArrayList<String>();
list.parallelStream().forEach(str -> System.out.println(str));
但是,我如何使用HashMap实现这样的功能呢?
Map<String, Integer> map = new HashMap<String, Integer>();
// won't work, because the Map
List<String> listOfNames = new ArrayList<>();for(
String name:listOfNames) { ///WANT TO PASS THIS VALUE IN THIS FUNCTION AND THIS FUNCTION WILL BE RUN IN PARALLEL FOR ALL INDEXES
myfunct(name){
//dosomething
}
我一直在尝试自己做一些基本的GA实现。我使用了一个类Gene,它封装了一个二进制位,一个Chromosome类,它有一个名为genes of Gene对象的ArrayList。在Chromosome类中,我有一个评估方法value(),它简单地计算染色体中比特的十进制等价物。在toString()类中重写的Chromosome方法使用lambda表达式来创建ArrayList genes中包含的Gene对象中的位的字符串表示形式。我的问题是:既然forEach()方法不应该尊重排序(为了并行性的好处),为什么它总是返回底层位的正确字符串表示,即按照创建它们的顺序?还是我错过了什么严重的事情?也
我有一个包含100万个文件名的列表,我必须从S3下载。目前,我正在逐个下载每个文件(下面是for -loop),大约需要4天才能完成下载。
for (String fileName : Files) {
InputStream is = null;
try {
is = m_S3.downloadFile(fileName); // m_s3 is a wrapper around AmazonS3 client
m_localDisk.createFile(fileName, is); // m_loca
我想在calculateKalmanValues()中为'movingBeacons‘列表中的每个元素同时调用下面的calculation(),以减少处理时间。我认为java stream.parallel()是理想的解决方案。 public void calculation(){
// do some think
} //这是我调用movingBeacons ()的方法//对于计算列表中的每个元素,同时应该调用calculation方法 public void calculateKalmanValues() {
List<String&g