小编Jhu*_*ath的帖子

使用多线程并行化Java中的for循环

我是java的新手,我想使用执行器服务或使用java中的任何其他方法并行化嵌套for循环.我想创建一些固定数量的线程,以便线程不会完全获取CPU.

    for(SellerNames sellerNames : sellerDataList) {
        for(String selleName : sellerNames) {
        //getSellerAddress(sellerName)
        //parallize this task
        }
    }
Run Code Online (Sandbox Code Playgroud)

sellerDataList = 1000的大小和sellerNames = 5000的大小.

现在我想创建10个线程并将相同的任务块分配给每个线程.这是为了我的sellerDataList,第一个线程应该获得500个名称的地址,第二个线程应该获得下一个500个名称的地址,依此类推.
做这份工作的最佳方法是什么?

java parallel-processing multithreading threadpool

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

获取Java中特定于语言环境的日期/时间格式

我在Java中有用例,我们想要获取语言环境特定的日期。我正在使用DateFormat.getDateInstance

final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM,
                Locale.forLanguageTag(locale)));
Run Code Online (Sandbox Code Playgroud)

这将转换日期,但是ja-JP将日期“ 2019年1月17日”转换为“ 2019/01/17”,但是我需要类似“ 2019?1?17?”的内容。对于所有其他语言环境,这可以正确翻译日期。

请告知是否还有其他方法可以获取此信息。

java locale date-format

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

在java流中使用return语句

您有两个实现一些代码我在使用Java流修改字符串:

final List<String> strings = new ArrayList<>();
strings.add("abc");
strings.add("bca");
strings.add("xyz");

Method 1:
final List<String> modifiedStrings = strings.stream().map(a -> {
        String abc;
        abc = a.replace("a", "*");
        return abc;
    }).collect(Collectors.toList());

Method 2:
final List<String> modifiedStrings2 = strings.stream().map(a ->
        a.replace("a", "*")).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

我想知道方法一和方法二之间是否存在任何性能差异.

java java-stream

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

检查密钥是否存在于scala Map中

我是Scala的新手,我很简单Map[String, String]

示例图:

val map = Map("a" -> "abc", "b" -> "xyz")
Run Code Online (Sandbox Code Playgroud)

我想编写一个逻辑,如果映射中存在特定密钥,则对该值调用crypto()方法,如果该密钥不存在,则返回空字符串。

我可以这样做的一种方法是:

encrypt(map.getOrElse(MARKETPLACE_ID.toString, ""))
Run Code Online (Sandbox Code Playgroud)

如果不存在密钥,这将失败,并且将使用空字符串调用crypto()方法。

请帮助我以最简单的方式解决此问题。

scala scala-collections

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

使用Scala中的JsonPath从json字符串获取特定参数

我有一个json字符串,我想在Scala中使用JsonPath从此json提取参数。鉴于杰森:

{
    "message_payload":"6b700b000006",
    "message_encryption_version":"2.0",
    "message_version":"1.0",
    "message_metadata":{
        "marketplace_id":"1",
        "workflow_id":"5906bd4e-52eb-4e2d-9a16-034fb67572f1",
        "hostname":"dev-dsk-shivabo-2b-3c0a1bd6.us-west-2.amazon.com",
        "event_type":"MerchantRegistrationFraudEvaluation",
        "event_date":"1513665186657"
        }
}
Run Code Online (Sandbox Code Playgroud)

我试图使用下面的代码来获取一些示例中找到的参数event_type,但它会引发错误:

val eventType = JsonPath.read(jsonString, "$.message_metadata.event_type")
Run Code Online (Sandbox Code Playgroud)

错误:

error: ambiguous reference to overloaded definition,
[scalac-2.11] both method read in object JsonPath of type [T](x$1: String, x$2: String, x$3: com.jayway.jsonpath.Predicate*)T
[scalac-2.11] and  method read in object JsonPath of type [T](x$1: Any, x$2: String, x$3: com.jayway.jsonpath.Predicate*)T
[scalac-2.11] match argument types (String,String)
[scalac-2.11]     val eventType = JsonPath.read(jsonString, "$.message_metadata.event_type");
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我我在这里想念什么吗?

scala jsonpath

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

检查对象的所有参数在scala中是否包含空值

我有一个名为Address的对象,它的字符串参数很少:

class Address(addressLine1: String, addressLine1: String, city: String, state: String) {

}
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个方法来检查所有地址参数是否包含空值:

def validateAddressNotEmpty(address: Address) : Boolean = {

//return true if any object parameter has non empty string

//return true if all object parameters contains  empty string

//NOTE: no parameter will contain NULL values 
  }
Run Code Online (Sandbox Code Playgroud)

一种方法是分别检查每个参数.我试图找出是否有任何替代方案来实现相同.

scala

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