package com.shekhargulati.ninetynine_problems._01_lists; import java.util.ArrayList; import java.util.List; import java.util.Objects; /** * <b>(**) Eliminate consecutive duplicates of list elements</b> * <p>If a list contains repeated elements they should be replaced with a single copy of the element. * The order of the elements should not be changed.</p> * <p> * <pre> * compress(Arrays.asList(a,a,a,a,b,c,c,a,a,d,e,e,e,e)) * [a,b,c,d,e] * </pre> */ public class P08 { public static <T> List<T> compress(List<T> list) { Objects.requireNonNull(list, "Please make sure list is not null"); List<T> result = new ArrayList<>(); T lastElement = null; for (T e : list) { if (!Objects.equals(lastElement, e)) { result.add(e); } lastElement = e; } return result; } }