有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java中的pythonzip方法

在java中是否有类似于pyton的zip方法

a = ("John", "Charles", "Mike")
b = ("Jenny", "Christy", "Monica")

x = zip(a, b)

(‘约翰’、‘珍妮’、‘查尔斯’、‘克里斯蒂’、‘迈克’、‘莫妮卡’)


共 (2) 个答案

  1. # 1 楼答案

    我用IntStream找到了解决方案

    List<String> names1 = new ArrayList<>(Arrays.asList("John", "Charles", "Mike", "Dennis"));
    List<String> names2 = new ArrayList<>(Arrays.asList("Jenny", "Christy", "Monica"));
    IntStream
      .range(0, Math.min(names1.size(), names2.size()))
      .mapToObj(i -> names1.get(i) + ":" + names2.get(i))
      .toList();
    

    但JOOL library提供了外观更好的解决方案

    Seq
      .of("John","Charles", "Mike")
      .zip(Seq.of("Jenny", "Christy", "Monica"));
    
  2. # 2 楼答案

    不,您必须通过循环列表来创建地图:

    public Map<String, String> zip(List<String> a, List<String> b) {
        var map = new HashMap<String, String>();
    
        for (var i = 0; i < a.size(); i++) {
            map.put(a.get(i), b.size() <= i ? b.get(i) : null);
        }
        
        return map;
    }