Автор оригинала: Pankaj Kumar.
Простые программы на java хороши для оценки навыков программирования программиста. Вы найдете вопросы, связанные с кодированием, практически в любом интервью.
Идея этих программных вопросов состоит в том, чтобы изучить мыслительный процесс кандидата. В большинстве случаев первоначальное решение неэффективно, что требует дополнительных вопросов и выяснения, может ли собеседник улучшить его еще больше или нет.
Простые Программы на Java
Вот я предоставляю 10 простых программ на Java. Они хороши для практики кодирования и могут быть использованы в интервью. Пожалуйста, попробуйте написать решение самостоятельно, прежде чем смотреть на ответ, это придаст вам больше уверенности, и вы сможете проверить, хорошо ли ваше решение или нет. Обратите внимание, что решения могут быть улучшены в дальнейшем, поэтому, если у вас есть лучший подход, пожалуйста, сообщите нам об этом в комментариях.
Переверните строку
package com.journaldev.javaprograms; public class JavaReverseString { public static void main(String[] args) { System.out.println(reverseString("abc")); System.out.println(reverseString("123!@#098*")); } public static String reverseString(String in) { if (in == null) return null; StringBuilder out = new StringBuilder(); int length = in.length(); for (int i = length - 1; i >= 0; i--) { out.append(in.charAt(i)); } return out.toString(); } }
- Проверка Null, чтобы избежать Исключения NullPointerException .
- Использование
StringBuilder
вместоStringBuffer
для повышения производительности. - Создание локальной переменной для длины входной строки, вместо того, чтобы иметь ее в состоянии if. Чем меньше вызовов функций, тем выше производительность.
- Можно было бы улучшить, приняв вводимые пользователем данные, а не данные статического тестирования
Ряд Фибоначчи
package com.journaldev.javaprograms; public class FibonacciSeries { public static void main(String[] args) { printFibonacciSeries(10); } public static void printFibonacciSeries(int count) { int a = 0; int b = 1; int c = 1; for (int i = 1; i <= count; i++) { System.out.print(a + ", "); a = b; b = c; c = a + b; } } }
- Программа может быть улучшена путем ввода пользователем количества целых чисел для печати.
- Обратите внимание на использование функции
System.out.print
для печати чисел в одну строку, хорошая работа. - Числа Фибоначчи начинаются с 0 или 1, вышеуказанная программа может быть расширена, чтобы принимать вводимые пользователем данные в качестве отправной точки.
- Красиво написанная простая программа, приятно видеть, что нет необходимости в рекурсии или сложном кодировании.
Проверка простых чисел
package com.journaldev.javaprograms; import java.util.Scanner; public class CheckPrimeNumber { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.print("Enter number to check for prime:"); int n = s.nextInt(); s.close(); checkPrime(n); } private static void checkPrime(int n) { if (n == 0 || n == 1) { System.out.println(n + " is not a prime number"); return; } if (n == 2) { System.out.println(n + " is a prime number"); } for (int i = 2; i <= n / 2; i++) { if (n % i == 0) { System.out.println(n + " is not a prime number"); return; } } System.out.println(n + " is a prime number"); } }
- Приятно видеть использование класса сканера для ввода данных пользователем.
- Обратите внимание на несколько проверок if для проверки чисел, где правила отличаются, т. е. 0,1 и 2. 0 и 1 не являются простыми числами, а 2-единственное четное простое число.
- Проверка деления выполняется только до
i/2
, разумно мыслит и хорошо работает. - Метод завершится ошибкой в случае отрицательных целых чисел – либо сообщите пользователю, чтобы он ввел положительное целое число в основной метод, либо сделайте целое число положительным, а затем обработайте его.
Проверьте наличие строки палиндрома
package com.journaldev.javaprograms; import java.util.Scanner; public class PalindromeString { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("Enter String to check for Palindrome:"); String str = s.next(); s.close(); checkPalindrome(str); } private static void checkPalindrome(String str) { char[] charArray = str.toCharArray(); StringBuilder sb = new StringBuilder(); for (int i = charArray.length - 1; i >= 0; i--) { sb.append(charArray[i]); } if (sb.toString().equalsIgnoreCase(str)) System.out.println(str + " is palindrome."); else System.out.println(str + " is not palindrome"); } }
- Создайте новую строку в обратном порядке с помощью StringBuilder, а затем проверьте, совпадает ли ее значение с исходной строкой.
- Реализацию можно улучшить, сравнив символы с обоих концов. Если длина строки равна 5, то это палиндром, если символы в и. Нет необходимости создавать отдельную строку. Попробуйте написать код для этого и опубликуйте в разделе комментариев.
Сортировка массива программно
package com.journaldev.javaprograms; import java.util.Arrays; public class JavaArraySort { public static void main(String[] args) { int[] array = {2,1,5,3,4,6,7}; int[] sortedArray = bubbleSortAscending(array); System.out.println(Arrays.toString(sortedArray)); } public static int[] bubbleSortAscending(int[] arr){ int temp; for(int i=0; i < arr.length-1; i++){ for(int j=1; j < arr.length-i; j++){ if(arr[j-1] > arr[j]){ temp=arr[j-1]; arr[j-1] = arr[j]; arr[j] = temp; } } //check that last index has highest value in first loop, // second last index has second last highest value and so on System.out.println("Array after "+(i+1)+"th iteration:"+Arrays.toString(arr)); } return arr; } }
- Существует множество алгоритмов сортировки, пузырьковая сортировка проще в реализации.
- Сортировка сложна, и вы должны полагаться на методы Java API для сортировки коллекции или массива для повышения производительности, которые снова изобретают колесо.
- Также упомяните использование Сопоставимого и компаратора при сортировке, это добавит вам бонусные баллы.
Прочитайте 3 входные строки, объедините и распечатайте
package com.journaldev.javaprograms; import java.util.Scanner; public class ReadStringAndConcat { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Enter number of Strings to Concatenate:"); int n = scanner.nextInt(); String[] input = new String[n]; for(int i=0; iУдаление нечетных чисел из массива целых чисел
package com.journaldev.javaprograms; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class RemoveOddNumbers { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Enter comma separated numbers for input int array, for example '1,2,3,4'"); String input = scanner.next(); scanner.close(); //convert to int array String[] inArray = input.split(","); int [] intArray = new int[inArray.length]; int index = 0; for(String s : inArray) { intArray[index] = Integer.parseInt(s.trim()); index++; } //call a function to remove odd numbers Integer[] result = removeOddNumbers(intArray); System.out.println(Arrays.toString(result)); } private static Integer[] removeOddNumbers(int[] intArray) { //we will have to use list because we don't know exact size of the result array Listlist = new ArrayList<>(); for(int i : intArray) { if(i%2 == 0) list.add(i); } return list.toArray(new Integer[list.size()]); } } Если вы читаете этот код, вы должны убедиться, что он соответствует всем пунктам, упомянутым выше. Попробуйте написать чистый и простой код, следуйте рекомендациям, соглашениям об именах методов и переменных, и у вас все получится.
Удалите все совпадающие элементы из списка
package com.journaldev.javaprograms; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Scanner; public class DeleteFromList { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Enter comma separated list of Strings. For example 'a,b,c,b,a'"); String input = scanner.next(); System.out.println("Enter String to remove from the input list."); String strToDelete = scanner.next(); scanner.close(); List
- Обратите внимание, что метод удаления создан для списка объектов, поэтому он будет работать с любым типом списка. Вот как мы пишем повторно используемый код.
- Использование итератора для удаления элемента из списка.
- Обрезка входных данных для удаления любых случайных пробелов из входных строк.
Среднее значение чисел с округлением наполовину и масштабом 2
package com.journaldev.javaprograms; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Scanner; public class AverageOfNumbers { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Please enter the total number of integers."); int count = scanner.nextInt(); int sum = 0; for (int i = 0; i < count; i++) { System.out.println("Please enter number " + (i + 1) + ":"); sum += scanner.nextInt(); } System.out.println("Sum=" + sum + ",Count=" + count); BigDecimal average = new BigDecimal((double) sum / count); average = average.setScale(2, RoundingMode.HALF_UP); System.out.println("Average of entered numbers = " + average); scanner.close(); } }Замена двух чисел
package com.journaldev.javaprograms; import java.util.Scanner; public class SwappingNumbers { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Enter the first number:"); int first = scanner.nextInt(); System.out.println("Enter the second number:"); int second = scanner.nextInt(); scanner.close(); System.out.println("Initial value of numbers are: "+first+" and "+second); first = first + second; second = first -second; first = first - second; System.out.println("Value of numbers after swapping are: "+first+" and "+second); } }Мы можем легко поменять местами числа, используя временную переменную. Но если вы можете обойтись без этого, то это потрясающе.
Это все для простых java-программ для интервью. Просмотрите их и попробуйте изучить лучшие способы написания кода и произвести впечатление на интервьюера.