Monday, 30 March 2026

Find Duplicate in List of Integer using Java 8 Stream

package in.jk.array.basic.java8;


import java.util.Arrays;

import java.util.HashSet;

import java.util.List;

import java.util.Map;

import java.util.Set;

import java.util.function.Function;

import java.util.stream.Collectors;


public class Java8 {

public static void main(String[] args) {

List<Integer> myList = Arrays.asList(10,15,8,49,25,98,98,32,15);

Set<Integer> set = new HashSet<Integer>();

// Method 1

myList.stream().filter(n->!set.add(n))

.forEach(System.out::println);

//Method 2

Map<Integer,Long> result= myList.stream().collect(Collectors.groupingBy(Function.identity(),Collectors.counting()))

.entrySet()

.stream()

.filter(entry->entry.getValue()>1)

.collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue));

System.out.println(result);



}


}

Two Sum Close to Zero

package in.jk.array;


import java.util.Arrays;


public class TwoSumCloseToZero {

public static void main(String[] args) {

int [] arr = {100,99,1,2,3,4,5,6,7,8,9,10};

int target=105;

Arrays.sort(arr);

System.out.println(Arrays.toString(twoSum(arr, target)));

}

public static int [] twoSum(int [] arr ,int target) {

int [] result =new int [2];

int left = 0;

int right = arr.length-1;

int minSum =Integer.MAX_VALUE;

int l=0;

int r=0;

while (left<right) {


int sum = arr[left]+arr[right];

int diff = Math.abs(target-sum);

if(diff<minSum) {

minSum=diff;

l=left;

r=right;

}else if(sum<target) {

left++;

}else if(sum>target) {

right--;

}else {

return new int[] {arr[l],arr[r]};

}

}

return result;

}


}


Output ::


[5, 100]