Rumah  >  Soal Jawab  >  teks badan

java - Stream.map()方法是保持原有顺序么?还是会重新排序呢?

PHP中文网PHP中文网2763 hari yang lalu1356

membalas semua(3)saya akan balas

  • PHPz

    PHPz2017-04-18 10:12:56

    Helo, dalam kes strim bukan serentak, susunan pemprosesan kaedah peta strim bergantung pada tertib strim memproses koleksi huluan pada masa ini Susunan ArrayList lalai kepada susunan semula jadi (sisipan pesanan), jadi koleksi ArrayList ditukar kepada aliran Kaedah peta memproses elemen koleksi dalam susunan semula jadi.

    // 输出c b a
    List<String> a = new LinkedList<String>();
    a.add("c");
    a.add("b");
    a.add("a");
    a.stream().map(x -> {
      System.out.println(x);
      return x;
    }).count();
    
    Map<String,String> m = new HashMap<String,String>();
    m.put("4","D");
    m.put("2","B");
    m.put("1","A");
    m.put("3","C");
    // m.values() 默认顺序为A B C D
    // 因此stream map的处理顺序也是 A B C D
    m.values().stream().map(x -> {
                        System.out.println(x);
                        return x;
                    }).count();

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 10:12:56

    map Pemetaan, ini tiada kaitan dengan pengisihan.

    List<String> list = new ArrayList<>();
    list.add("A");
    list.add("B");
    
    list.stream().map((Function<String, Object>) s -> s + "1").forEach(System.out::println);
    // output:
    // A1
    // B1

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:12:56

    parallelStream tidak menjamin pesanan, streamp menjamin pesanan

    balas
    0
  • Batalbalas