recherche

Maison  >  Questions et réponses  >  le corps du texte

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

PHP中文网PHP中文网2802 Il y a quelques jours1401

répondre à tous(3)je répondrai

  • PHPz

    PHPz2017-04-18 10:12:56

    Bonjour, dans le cas de flux non simultanés, l'ordre de traitement de la méthode map du flux dépend de l'ordre dans lequel le flux traite actuellement la collection en amont. L'ordre de ArrayList est par défaut l'ordre naturel (insertion). ordre), donc la collection ArrayList est convertie en flux. La méthode map traite les éléments de la collection dans l'ordre naturel.

    // 输出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();

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-18 10:12:56

    mapLa cartographie, cela n'a rien à voir avec le tri.

    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

    répondre
    0
  • PHP中文网

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

    parallelStream ne garantit pas la commande, streamp garantit la commande

    répondre
    0
  • Annulerrépondre