Skip to content

Instantly share code, notes, and snippets.

@halvards
Created April 17, 2018 01:06
Show Gist options
  • Save halvards/34a2b67c1842303d6118f25910221969 to your computer and use it in GitHub Desktop.
Save halvards/34a2b67c1842303d6118f25910221969 to your computer and use it in GitHub Desktop.
Generate all pairs of elements in an iterator, excluding matching pairs
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
public class PairPermutations {
public static void main(String[] args) {
Iterator<String> itemsIterator = Arrays.asList("1", "2", "3").iterator();
List<String> itemsList = new ArrayList<>();
itemsIterator.forEachRemaining(itemsList::add);
List<String[]> pairs = itemsList.stream()
.flatMap(item1 -> itemsList.stream()
.filter(item2 -> !item1.equals(item2))
.map(item2 -> new String[]{item1, item2}))
.collect(Collectors.toList());
pairs.stream().forEach(pair -> System.out.println(Arrays.toString(pair)));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment