Prev Next

Java / Programs

Could not find what you were looking for? send us the question and we would be happy to answer your question.

1. Write a Java program to find the last repeating character in a String.

The below program is implemented using Java 8.

public class LastOccuranceOfRepeatingChar {

	public static void main(String[] args) {

		String str = "abcdklja";

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

		str.codePoints().filter(i -> myTempHashSet.add(i) == false).reduce((first, second) -> second)
				.ifPresent(c -> System.out.println("Last repeating char: " + (char) c));

	}

}

The below version is for Java 7 or less.

public class LastOccuranceOfRepeatingCharJava7 {

	public static void main(String[] args) {

		String str = "abcdklja";

		Set<Character> myTempHashSet = new HashSet<>();

		char lastChar = 0;

		for (int i = 0; i < str.length(); i++) {
			if (myTempHashSet.add(str.charAt(i)) == false) {
				lastChar = str.charAt(i);
			}
		}

		System.out.println("Last repeating char: " + lastChar);
	}

}
2. Write a Java program to find the first repeating character in a String.

The below program is implemented using Java 8.

public class FirstRepeatingChar {

	public static void main(String[] args) {
		String str = "abcdklha";
		Set<Integer> myTempHashSet = new HashSet<>();

		str.codePoints().filter(i -> myTempHashSet.add(i) == false).findFirst()
				.ifPresent(i -> System.out.println("First repeating Char: " + (char) i));
	}

}

Java7 version.

public class FirstRepeatingCharJava7 {

	public static void main(String[] args) {
		String str = "abcdklha";
		Set<Character> myTempHashSet = new HashSet<>();

		for (int i = 0; i < str.length(); i++) {
			if (myTempHashSet.add(str.charAt(i)) == false) {
				System.out.println("First repeating character: " + str.charAt(i));
				break;
			}
		}
	}

}
3. Write a simple Java program to find the sum of all integers in a List.

public class SumofIntegersOfList {

	public static void main(String[] args) {
		List<Integer> myList = Arrays.asList(1, 2, 3, 4, 5);

		System.out.println("Sum :" + myList.stream().reduce((i, j) -> i + j));

	}
}

4. Write a Java program to find the subArray in an Integer Array that has maximum Sum of the elements.
public class FindSubArrayWithMaxSum {

	public static void main(String[] args) {

		// Creating a bucket of integer array with various test values for unit testing
		int[][] myArr = { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, -11 }, { 1, 2, 3, 0, 4, 3, -1, 3, 5, 5, 6, 6, -2, 50 },
				{ -3, 0, -1 }, { 0, -1 }, {}, { -2 }, { 2 }, { 0 }, { 1, 2, 3, -1, 1, 2, 3, 4, 0, -1, 1, 1 } };

		// For each of the above data set find the sumArray with Maximum sum
		IntStream.range(0, myArr.length).mapToObj(i -> myArr[i]).parallel()
				.forEach(FindSubArrayWithMaxSum::findMaxSumSubArray);
	}

	static void findMaxSumSubArray(int[] myArr) {
		if (myArr.length == 0)
			return;

		int positionI = 0, positionJ = 0;
		int tempPositionI = 0, tempPositionJ = 0;
		int maxSum, tempSum;

		maxSum = tempSum = myArr[0];

		for (int i = 1; i < myArr.length; i++) {
			if (tempPositionI >= i || tempSum < 0) {
				tempPositionI = tempPositionJ = i;
				tempSum = myArr[i];
				continue;
			}
			if ((tempSum + myArr[i]) >= tempSum) {
				tempSum += myArr[i];
				tempPositionJ = i;
			} else if (i + 1 < myArr.length) {
				positionI = tempPositionI;
				positionJ = tempPositionJ;
				maxSum = tempSum;
				tempPositionI = i + 1;
			}
		}

		if (tempSum > maxSum) {
			positionI = tempPositionI;
			positionJ = tempPositionJ;
			maxSum = tempSum;
		}

		System.out.println(
				Arrays.toString(myArr) + " >> Start Position: " + positionI + " End Position: " + positionJ + ", Sum: " + maxSum);
	}

}
5. Java program to find the first non-repeating character in a String.
public class FirstNonRepeatingChar {
	
	public static void main(String[] args) {
		String str = "abccak";
		HashMap<Character,Boolean> myLinkedMap = new LinkedHashMap<>();
		
		for (int i=0; i<str.length(); i++) {
			char c = str.charAt(i);
			if (myLinkedMap.containsKey(c)) {
				myLinkedMap.put(c, false);
			} else {
				myLinkedMap.put(c,true);
			}
		}
		
		System.out.println ("First non-repeating char: " + myLinkedMap.entrySet().stream().filter(map ->map.getValue() == true).findFirst().map (p -> p.getKey()));
		
	}

}
6. Java program to find the last non-repeating character in a String.
public class LastNonRepeatingChar {

	public static void main(String[] args) {
		String str = "abccak";
		HashMap<Character,Boolean> myLinkedMap = new LinkedHashMap<>();
		
		for (int i=0; i<str.length(); i++) {
			char c = str.charAt(i);
			if (myLinkedMap.containsKey(c)) {
				myLinkedMap.put(c, false);
			} else {
				myLinkedMap.put(c,true);
			}
		}
		
		System.out.println ("Last non-repeating char: " + myLinkedMap.entrySet().stream().filter(map ->map.getValue() == true).reduce((first,second) ->second).map (p -> p.getKey()));
		
	}

}
7. Write a Java program to calculate Fibonacci of N using memoize recursive method.
public class Fibonacci {
	static int n;
	private int[] memoise_array = new int[n];

	public static void main(String[] args) {
		n = 6;
		System.out.println(new Fibonacci().fibonacci(n));
	}

	int fibonacci(int n) {
		if (memoise_array[n - 1] != 0)
			return memoise_array[n - 1];
		else if (n == 1 || n == 2)
			return 1;
		else
			memoise_array[n - 1] = fibonacci(n - 1) + fibonacci(n - 2);
		return memoise_array[n - 1];
	}

}

8. Write a Java program to count negative numbers in a 2-dimensional array which is sorted row and column wise. (Amazon interview question)
public class CountNegativeNumbers {
	/*
	 * Amazon interview question
	 */
	public static void main(String[] args) {

		int[][] matrix = new int[][] { { -3, -2, -1, 0 }, { -2, -1, 0, 1 }, { -1, 0, 1, 2 }, { -1, 1, 2, 3 } };
		int count = 0;
		int k = matrix[0].length - 1;
		for (int i = 0; i < matrix.length; i++) {
			for (int j = k; j >= 0; j--) {
				if (matrix[i][j] < 0) {
					count = count + j + 1;
					k = j;
					break;
				}
			}
		}

		System.out.println("Total negative nos: " + count);

	}

}
«
»
JVM

Comments & Discussions