package com.shekhargulati.ninetynine_problems._01_lists; import java.util.AbstractMap.SimpleEntry; import java.util.List; import static java.util.stream.Collectors.toList; /** * <b>(*) Modified run-length encoding</b> * <pre> * encode_modified(Arrays.asList("a", "a", "a", "a", "b", "c", "c", "a", "a", "d", "e", "e", "e", "e")) * </pre> */ public class P11 { public static <T> List<Object> encode_modified(List<T> list) { return P09.pack(list).stream().map(l -> { if (l.size() == 1) { return l.get(0); } return new SimpleEntry<>(l.size(), l.get(0)); }).collect(toList()); } }