小编Nic*_*s K的帖子

Java parallelStream映射错过了记录

我有以下代码,有时行为不确定.例如,我在那里传递3个事件,输出只有两个!你能解释一下这种行为的原因吗?

public List<AbstractTransactionResponse> getEventResponse(final List<AbstractEvent> events){

        List<AbstractTransactionResponse> abstractTransactionResponses = new ArrayList<>();
        events.parallelStream().map(event -> {
            abstractTransactionResponses.add(getEventResponse(event));
            return null;
        }).collect(Collectors.toList());
        return abstractTransactionResponses;
    }
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

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

用于在HashMap Java 8中拆分字符串和存储的模式

我想拆分下面的字符串并将其存储在HashMap中:

String currentString= "firstName-lastName-rollNum-departmentNum=firstName1-lastName1-rollNum1-departmentNum1"; 
Run Code Online (Sandbox Code Playgroud)

我希望我的输出存储在地图中,如连字符( - )(firstName)之前的第一个字符串和(=)之后的第一个字符串(firstName1),......... ie

{firstName=firstName1,lastName=lastName1,rollNum=rollNum1,departmentNum=departmentNum1}
Run Code Online (Sandbox Code Playgroud)

下面的代码不适用于我的模式:

Map<String,String> mapVal= null;
mapVal = Pattern.compile("\\s*=\\s*")
                .splitAsStream(currentString.trim())
                .map(s -> s.split("-", 2))
                .collect(Collectors.toMap(a -> a[0], a -> a.length>1? a[1]: ""));
Run Code Online (Sandbox Code Playgroud)

一旦我分割了字符串,我就不明白如何将所需的值组合在一起,如上所示.如果你没有得到我的问题,我道歉.

提前致谢 !!

java collections arraylist java-8 java-stream

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

重写Arrays.toString()方法

我只是想知道,是否可以重写类java.util.Arrays的toString()方法。我正在课堂上做一个项目,我计划输出数组而不是

[33,12,98]至[033,012,098]

我只是想知道是否有可能在不重写Arrays.toString()方法的情况下做到这一点。

谢谢您的帮助 :)

java arrays overriding tostring

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

Angular Reactuve 表单控件 valueChanges 获取值更改字段名称、上一个值和当前值

 this.form = this.fb.group({ 
  prop1: '',
  prop2: ''
});

this.form.valueChanges.pipe(startWith(null), pairwise())
  .subscribe(([prev, next]: [any, any]) => {
    console.log('PREV2', prev);
    console.log('NEXT2', next);
  });
Run Code Online (Sandbox Code Playgroud)

使用此代码我可以获得以前的值和当前值。我想要的是有什么方法可以获取更改的字段、上一个值和当前值。

就像字段更改名称:prop1,上一个值:“”,当前值:“下一个值”

javascript rxjs angular angular-reactive-forms

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

在字符串中查找第一个非重复字符

我正在编写一个方法来查找字符串中的第一个非重复字符.我在之前的stackoverflow问题中看到了这个方法

public static char findFirstNonRepChar(String input){
 char currentChar = '\0';
 int len = input.length();
 for(int i=0;i<len;i++){
    currentChar = input.charAt(i);
    if((i!=0) && (currentChar!=input.charAt(i-1)) && (i==input.lastIndexOf(currentChar))){
        return currentChar;
    }
 }
 return currentChar;
}
Run Code Online (Sandbox Code Playgroud)

我想出了一个使用散列表的解决方案,其中我有两个for循环(不是嵌套),我在一个循环中通过字符串进行交互,记下每个字母的出现(例如在apple中,a将有1,p将有2个)等等,然后在第二个循环中,我通过哈希表进行交互,以查看哪个首先计数为1.与我提出的方法相比,上述方法有什么好处?我是Java的新手,确实有两个循环(不是嵌套)阻碍了时间的复杂性.这两种算法都应该有O(n)对吗?对于这个问题,还有比这两个解决方案更快,更少的空间复杂度算法吗?

java string

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

用Java创建静态对象的目的是什么?

class Demo {
   void show() {
      System.out.println("i am in show method of super class");
   }
}
class Flavor1Demo {

   //  An anonymous class with Demo as base class
   static Demo d = new Demo() {
       void show() {
           super.show();
           System.out.println("i am in Flavor1Demo class");
       }
   };
   public static void main(String[] args){
       d.show();
   }
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我不了解在其前面带有static关键字的Demo类的创建对象d的用法。如果我消除了static关键字,则会显示错误。实际上,我正在经历匿名的内部类概念,并被困在这里。需要帮助...。任何人都可以解释一下吗?

java

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

使用 angular2 和 bootstrap 将数组数据显示为 3 列

在我的 angular2 组件中,我列出了数据,我想使用 booststrap 类(col-md-4)将这些数据显示到 3 列中。

例如,我有如下所示的 json 对象。

{
"menuList":[
    {"id":1,"sn":"nd","name":"Noodles"},
    {"id":2,"sn":"sd","name":"Salad"},
    {"id":3,"sn":"sp","name":"Soup"},
    {"id":4,"sn":"fb","name":"Fresh Bowl"},
    {"id":5,"sn":"sn","name":"Snacks"},
    {"id":6,"sn":"pz","name":"Pizza"},
    {"id":7,"sd":"nd","name":"Sandwich"}
]
Run Code Online (Sandbox Code Playgroud)

}

我想将名称显示为 3 列。

面条 沙拉 汤 新鲜碗 小吃 三明治

这是我尝试过的代码。

<div *ngFor="let menu of menuList; #i=index" *ngIf="i % 3 == 0" class="row">
    <div class="col-md-4">{{menu[$i].name}}</div>
    <div class="col-md-4">{{menu[$i + 1].name}}</div>
    <div class="col-md-4">{{menu[$i + 2].name}}</div>
Run Code Online (Sandbox Code Playgroud)

但它显示错误,因为首先我不能在同一元素中使用 ngFor 和 ngIf 。

请给我一个解决方案。

javascript twitter-bootstrap-3 angular

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

SSL 握手失败

奇怪的情况:有一个android应用程序。在它直接工作到 apache2 之前。最近我尝试使用 nginx 作为反向代理。应用程序停止工作。nginx 日志上的调试显示“ SSL_do_handshake() failed (SSL: error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown:SSL alert number 46) while SSL handshaking”。然后切换回 apache2,打开调试,但在 apache2 应用程序连接使用 TLS 而不是 SSLv3。有没有人遇到过这种情况?为什么android应用程序尝试使用SSLv2(已弃用)但使用带有TLS的apache2连接nginx?感谢您提前的想法。

reverse-proxy nginx sslv3

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

从单个服务多次调用多个微服务的最佳方法或设计模式是什么?

微服务 A 依赖于微服务 B 和 C。当客户端调用服务 A 上的某个端点时,这将导致从 A 向服务 B 和 C 发出多个 HTTP 请求以获取依赖的详细信息。同时处理这种情况的最佳、性能有效的设计模式或方法是什么?

注意:在这种情况下我们没有使用 API 网关。

java spring-mvc spring-boot microservices

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

如何在Java中找到与forEach和lambda表达式的和?

以下代码段无法编译.如何找到如下所示的sum使用forEach方法?

private int Sum(ArrayList<Integer> inputs) {
    int sum = 0;

    inputs.stream().forEach(x -> sum += x);

    return sum;
}
Run Code Online (Sandbox Code Playgroud)

java lambda java-8

3
推荐指数
2
解决办法
1180
查看次数