小编gpa*_*gpa的帖子

Java fork-join 性能

我有合并排序的示例实现,一个使用 Fork-Join,另一个是直接递归函数。

看起来 fork-join 比直接递归慢,为什么?

import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.RecursiveTask;

class DivideTask extends RecursiveTask<int[]> {
    private static final long serialVersionUID = -7017440434091885703L;
    int[] arrayToDivide;

    public DivideTask(int[] arrayToDivide) {
        this.arrayToDivide = arrayToDivide;
    }

    @Override
    protected int[] compute() {
        //List<RecursiveTask> forkedTasks = new ArrayList<>();

        /*
         * We divide the array till it has only 1 element. 
         * We can also custom define this value to say some 
         * 5 elements. In which case the return would be …
Run Code Online (Sandbox Code Playgroud)

java

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

UUID与c#代码互操作

c#donet可以为以下java代码生成相同的UUID吗?如果是这样的话?我试过GUID但没有用!

文本:

String cleartext = "CN=CompanyName;mac=some mac;@host=somehost;email=admin@somedomain.com;issued=01/01/20013;expire=12/12/2013";
Run Code Online (Sandbox Code Playgroud)

Java代码:

UUID uuid = UUID.nameUUIDFromBytes(cleartext.getBytes("UTF-8"));
Run Code Online (Sandbox Code Playgroud)

C#代码:

byte[] b = System.Text.Encoding.UTF8.GetBytes(cleartext);
        Guid uid = new Guid(b);
        Console.Write(uid.ToString());
Run Code Online (Sandbox Code Playgroud)

REF 早先的讨论

c# java

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

甲骨文 - 如何获得今年的第一个星期一?

如何获得今年的第一个星期一?

select TRUNC(date'2015-01-01','YYYY')
      ,NEXT_DAY(TRUNC(date'2015-01-01','YEAR')+1,'MONDAY')
from dual;

01-JAN-2015 05-JAN-2015
Run Code Online (Sandbox Code Playgroud)

sql oracle

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

ConcurrentHashMap使用并行Streams删除键

我有以下顺序代码,使用另一个键列表从哈希映射中删除条目.地图大小可以是50-100k条目,删除密钥列表可以是2k - 10k.我正在寻找使用新的java-8流的解决方案......

    List<Long> removed = new ArrayList<Long>();
    for (Long k : removelist) {
        if (null != map.remove(k)) {
            removed.add(k);
        }
    }
Run Code Online (Sandbox Code Playgroud)

java concurrent-programming java-8

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

带有ForEach迭代问题的Java Stream

我有两种类型的处理实现.不确定为什么流forEach循环抱怨变量'i'必须是final.但如果最终,那么如何解决计算'i'的逻辑问题?

public static void main(String[] args) {
    String str = "123456789";
    int i = 0;
    //Non Stream
    for (char c : str.toCharArray()) {
        if (c >= 48 && c <= 57) {
            i = i * 10 + (c - 48);
        }
    }
    System.out.println(i);
     i = 0;
    // WHY compiler fails for variable 'i' here? 
    str.chars().forEach((c) -> {
        if (c >= 48 && c <= 57) {
            i = i * 10 + (c - 48);
        }
    });
    System.out.println(i);
}
Run Code Online (Sandbox Code Playgroud)

java foreach java-8 java-stream

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

提取单引号中的字符串数据

我使用的是java 7,我的数据流包含以下行:

SENDER='CALTRANS'
SENDER='BIGO'
SENDER='FIO'
..
..
Run Code Online (Sandbox Code Playgroud)

我想只提取单引号中的数据.即

CALTRANS
BIGO
FIO
Run Code Online (Sandbox Code Playgroud)

...... ..

关于正则表达式的任何建议?

java regex

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

基于掩码的字符串解析

我有几个字符串多个掩码.我想知道有没有更好的方法来处理字符串与掩码解析而不是String.spilt和循环标记和识别序列等.这个代码也很笨拙,许多令牌逻辑必须编码.

样品掩码可以是:

  1. PROD-LOC-STATE城市
  2. PROD-DEST-STATE-ZIP
  3. PROD-OZIP-DZIP-VER-INS

示例字符串:

  1. CoolDuo-GROUND-NYC-10082

示例代码:

 String[] arr = input.split("-");
 int pos = 0;
 for(String k:arr){

  if(pos == 0) {
     //-- k is of PROD
     ...
     ...
  }
  ..
  ...

  pos++;
}
Run Code Online (Sandbox Code Playgroud)

针对每种掩码类型保留上述类型的代码.

java

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

根据价值锁定/解锁?

我有一个方法,通过3个并发线程在对象实例上调用.我感兴趣的锁是基于价值而不是对象.例如,如果两个线程(T1,T2)正在处理RecordID = 123并且T3正在处理RecordID = 456.该方法应仅锁定T2,T3应继续执行.

目前,我正在使用Lock,但如果T1被锁定,它将锁定T2和T3.

public void doSomething(String id){
      try {
       lock.lock();
       MyRecord r = find(id);
       ...
       ....
       } finally{
         lock.unlock();
       }
}
Run Code Online (Sandbox Code Playgroud)

java multithreading synchronization locking thread-safety

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