小编Run*_*Run的帖子

如何判断列表是否是java8流的另一个子序列?

例如,我有一个很长的列表[1, 2, 3, ..., 10],一个很短的列表,[1, 3, 6]然后我可以告诉我,短的列表是另一个的子序列.另一方面,列表[1 6 3]不是因为它违反了订单约束.

下面是我这个问题的java7样式代码:

List<Integer> sequence = Arrays.asList(1, 3, 6);
List<Integer> global = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
Iterator<Integer> iterGlobal = global.iterator();
boolean allMatch = true;
for(Integer itemSequence: sequence) {
    boolean match = false;
    while(iterGlobal.hasNext()) {
        if(itemSequence.equals(iterGlobal.next())) {
            match = true;
            break;
        }
    }
    if(!match) {
        allMatch = false;
        break;
    }
}
System.out.println(allMatch); //=> true
Run Code Online (Sandbox Code Playgroud)

而我的愿望是找到一个java8流样式来实现相同的结果.

java functional-programming java-8 java-stream

8
推荐指数
2
解决办法
355
查看次数

java8流样式将键值列表转换为映射?

我想将像[k1,v1,k2,v2]这样的列表转换为像{k1:v1,k2:v2}这样的地图.原始代码是:

List<Object> params = Arrays.asList("k1", "v1", "k2", "v2");
Map<String, Object> map = new HashMap<>();
for(int i = 0; i < params.size(); i+=2) {
    String key = (String)params.get(i);
    Object value = params.get(i + 1);
    map.put(key, value);
}
System.out.println(map); // => {k1=v1, k2=v2}
Run Code Online (Sandbox Code Playgroud)

那我想把它转换成java8流式?怎么样?

functional-programming java-8 java-stream

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

如何在rails开发环境中使用factory_girl正确排序?

我想将factory_girl集成到rails开发环境中以快速创建记录。然而,每次我打开rails控制台并执行一些操作时,序列状态总是从零开始,这导致违反唯一性的错误。例如:

FactoryGirl.define do
  factory :user do
    name 'Jim'
    email
  end

  sequence :email do |n| # every time n begins at 0
    "#{n}@exmaple.com"
  end
end
Run Code Online (Sandbox Code Playgroud)

您有一些简单的解决方案来解决这个问题吗?谢谢你!

ruby-on-rails factory-bot

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

java8流样式,用于通过字段列表检索地图的内部部分?

例如,给出如下地图:

{
  "k1": {
    "k2": {
      "k3": {
        "k4": "v"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

和一个字段列表["k1","k2","k3"],我需要检索该部分{"k4": "v"}.

下面是我的java7风格的代码:

// Ignore the map building code.
Map map1 = new HashMap();
Map map2 = new HashMap();
Map map3 = new HashMap();
Map map4 = new HashMap();
map4.put("k4", "v");
map3.put("k3", map4);
map2.put("k2", map3);
map1.put("k1", map2);
Map map = map1;
System.out.println(map); //=> {k1={k2={k3={k4=v}}}}

// Code to be transformed to java8 style
List<String> fields = Arrays.asList("k1", "k2", "k3");
for(String field: fields) { …
Run Code Online (Sandbox Code Playgroud)

functional-programming java-8 java-stream

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

在openSuse上安装gem nokogiri时出错 - 无法创建Makefile而无法找到mkmf.log

我想在我的openSuse Leap 42.1系统上安装gem nokogiri.由于以下命令,我安装了libxml2-devel和libxslt-devel:

show libxml2-devel和libxslt-devel安装标志'i'表示已安装的软件包.

当我命令"sudo gem install nokogiri"时,它输出以下消息:

'sudo gem install nokogiri'的输出

我想细节是在'mkmf.log',但我不知道它在哪里.

非常感谢.

ruby gem nokogiri

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