Skip to main content
Add hyperlink; consistent indentation
Source Link
M. Justin
  • 23.2k
  • 12
  • 133
  • 168

Here's Java-8 solution using the Pair class (like in @ZhekaKozlov answer@ZhekaKozlov's answer):

public static <A, B> List<Pair<A, B>> zipJava8(List<A> as, List<B> bs) { return IntStream.range(0, Math.min(as.size(), bs.size())) .mapToObj(i -> new Pair<>(as.get(i), bs.get(i))) .collect(Collectors.toList()); } 

In Java 9 onwards you can use Map.entry():

 public static <A, B> List<Map.Entry<A, B>> zipJava9(List<A> as, List<B> bs) {   return IntStream.range(0, Math.min(as.size(), bs.size()))   .mapToObj(i -> Map.entry(as.get(i), bs.get(i)))   .collect(Collectors.toList());  } 

 

Here's Java-8 solution using the Pair class (like in @ZhekaKozlov answer):

public static <A, B> List<Pair<A, B>> zipJava8(List<A> as, List<B> bs) { return IntStream.range(0, Math.min(as.size(), bs.size())) .mapToObj(i -> new Pair<>(as.get(i), bs.get(i))) .collect(Collectors.toList()); } 

In Java 9 onwards you can use Map.entry():

 public static <A, B> List<Map.Entry<A, B>> zipJava9(List<A> as, List<B> bs) {   return IntStream.range(0, Math.min(as.size(), bs.size()))   .mapToObj(i -> Map.entry(as.get(i), bs.get(i)))   .collect(Collectors.toList());  } 

 

Here's Java-8 solution using the Pair class (like in @ZhekaKozlov's answer):

public static <A, B> List<Pair<A, B>> zipJava8(List<A> as, List<B> bs) { return IntStream.range(0, Math.min(as.size(), bs.size())) .mapToObj(i -> new Pair<>(as.get(i), bs.get(i))) .collect(Collectors.toList()); } 

In Java 9 onwards you can use Map.entry():

public static <A, B> List<Map.Entry<A, B>> zipJava9(List<A> as, List<B> bs) { return IntStream.range(0, Math.min(as.size(), bs.size())) .mapToObj(i -> Map.entry(as.get(i), bs.get(i))) .collect(Collectors.toList()); } 

 

@maxime.bochon [has a point](https://stackoverflow.com/questions/31963297/how-to-zip-two-java-lists#comment129318549_31964093)
Source Link
candied_orange
  • 7.6k
  • 2
  • 32
  • 66

Here's Java-8 solution using the Pair class (like in @ZhekaKozlov answer):

public static <A, B> List<Pair<A, B>> zipJava8(List<A> as, List<B> bs) { return IntStream.range(0, Math.min(as.size(), bs.size())) .mapToObj(i -> new Pair<>(as.get(i), bs.get(i))) .collect(Collectors.toList()); } 

In Java 9 onwards you can use Map.entry():

 public static <A, B> List<Map.Entry<A, B>> zipJava8zipJava9(List<A> as, List<B> bs) { return IntStream.range(0, Math.min(as.size(), bs.size())) .mapToObj(i -> Map.entry(as.get(i), bs.get(i))) .collect(Collectors.toList()); } 
 

 

Here's Java-8 solution using the Pair class (like in @ZhekaKozlov answer):

public static <A, B> List<Pair<A, B>> zipJava8(List<A> as, List<B> bs) { return IntStream.range(0, Math.min(as.size(), bs.size())) .mapToObj(i -> new Pair<>(as.get(i), bs.get(i))) .collect(Collectors.toList()); } 

In Java 9 onwards you can use Map.entry():

 public static <A, B> List<Map.Entry<A, B>> zipJava8(List<A> as, List<B> bs) { return IntStream.range(0, Math.min(as.size(), bs.size())) .mapToObj(i -> Map.entry(as.get(i), bs.get(i))) .collect(Collectors.toList()); } 

Here's Java-8 solution using the Pair class (like in @ZhekaKozlov answer):

public static <A, B> List<Pair<A, B>> zipJava8(List<A> as, List<B> bs) { return IntStream.range(0, Math.min(as.size(), bs.size())) .mapToObj(i -> new Pair<>(as.get(i), bs.get(i))) .collect(Collectors.toList()); } 

In Java 9 onwards you can use Map.entry():

 public static <A, B> List<Map.Entry<A, B>> zipJava9(List<A> as, List<B> bs) { return IntStream.range(0, Math.min(as.size(), bs.size())) .mapToObj(i -> Map.entry(as.get(i), bs.get(i))) .collect(Collectors.toList()); } 
 

 

deleted 2 characters in body
Source Link
jrook
  • 3.5k
  • 1
  • 19
  • 36

Here's Java-8 solution using the Pair class (like in @ZhekaKozlov answer):

public static <A, B> List<Pair<A, B>> zipJava8(List<A> as, List<B> bs) { return IntStream.range(0, Math.min(as.size(), bs.size())) .mapToObj(i -> new Pair<>(as.get(i), bs.get(i))) .collect(Collectors.toList()); } 

In Java 9 onwards you can use Map.entry():

 public static <A, B> List<Map.Entry<A, B>> zipJava8(List<A> as, List<B> bs) { return IntStream.range(0, Math.min(as.size(), bs.size())) .mapToObj(i -> Map.entry<>entry(as.get(i), bs.get(i))) .collect(Collectors.toList()); } 

Here's Java-8 solution using the Pair class (like in @ZhekaKozlov answer):

public static <A, B> List<Pair<A, B>> zipJava8(List<A> as, List<B> bs) { return IntStream.range(0, Math.min(as.size(), bs.size())) .mapToObj(i -> new Pair<>(as.get(i), bs.get(i))) .collect(Collectors.toList()); } 

In Java 9 onwards you can use Map.entry():

 public static <A, B> List<Map.Entry<A, B>> zipJava8(List<A> as, List<B> bs) { return IntStream.range(0, Math.min(as.size(), bs.size())) .mapToObj(i -> Map.entry<>(as.get(i), bs.get(i))) .collect(Collectors.toList()); } 

Here's Java-8 solution using the Pair class (like in @ZhekaKozlov answer):

public static <A, B> List<Pair<A, B>> zipJava8(List<A> as, List<B> bs) { return IntStream.range(0, Math.min(as.size(), bs.size())) .mapToObj(i -> new Pair<>(as.get(i), bs.get(i))) .collect(Collectors.toList()); } 

In Java 9 onwards you can use Map.entry():

 public static <A, B> List<Map.Entry<A, B>> zipJava8(List<A> as, List<B> bs) { return IntStream.range(0, Math.min(as.size(), bs.size())) .mapToObj(i -> Map.entry(as.get(i), bs.get(i))) .collect(Collectors.toList()); } 
Use Java 9's Map.entry() method
Source Link
tgdavies
  • 11.6k
  • 4
  • 41
  • 45
Loading
Source Link
Tagir Valeev
  • 100.9k
  • 19
  • 233
  • 346
Loading