Глубокое погружение в лямбда-выражения на Java
Это руководство полностью посвящено освоению лямбда-выражений на Java. Вы узнаете всё, что вам нужно знать, от основ создания и работы до более продвинутых тем, таких как функциональные интерфейсы и ссылки на методы. Независимо от того, новичок вы или опытный разработчик, это руководство поможет вам повысить уровень вашей лямбда-игры. Итак, давайте погрузимся в мир функционального программирования с помощью Java-лямбд!
Бонус: В конце статьи есть несколько практических вопросов, которые помогут вам подготовиться к следующему собеседованию и оценить свои знания.
TL; DR: Лямбда-выражения – это мощный инструмент для Java-разработчиков, который включает парадигмы функционального программирования и предоставляет способ работы с коллекциями и потоками в Java. Освоив лямбда-выражения, вы, как разработчик, будете писать лучший код, работать эффективнее и создавать более удобные в обслуживании и масштабируемые приложения.
▪Читать
@javatg
Это руководство полностью посвящено освоению лямбда-выражений на Java. Вы узнаете всё, что вам нужно знать, от основ создания и работы до более продвинутых тем, таких как функциональные интерфейсы и ссылки на методы. Независимо от того, новичок вы или опытный разработчик, это руководство поможет вам повысить уровень вашей лямбда-игры. Итак, давайте погрузимся в мир функционального программирования с помощью Java-лямбд!
Бонус: В конце статьи есть несколько практических вопросов, которые помогут вам подготовиться к следующему собеседованию и оценить свои знания.
TL; DR: Лямбда-выражения – это мощный инструмент для Java-разработчиков, который включает парадигмы функционального программирования и предоставляет способ работы с коллекциями и потоками в Java. Освоив лямбда-выражения, вы, как разработчик, будете писать лучший код, работать эффективнее и создавать более удобные в обслуживании и масштабируемые приложения.
▪Читать
@javatg
❤7👍6🔥2
VAVR, который много лет назад назывался JavaSlang, — это Java API, который привносит возможности функционального программирования в код, а также предоставляет отличный API для неизменяемых коллекций. В этой статье рассмотрим обычный код на Java и его эквивалент с VAVR, чтобы вы увидели, как приятно работать с этой библиотекой.
▪Читать
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3❤1
Пять задач, которые приходится решать при трудоустройстве начинающим Java-разработчикам
В процессе подбора кандидатов работодатель хочет понять, насколько ему подходит тот или иной соискатель — насколько он комфортен в общении и работе, обладает необходимым опытом и, что самое важное, техническими навыками для предстоящей работы.
В этой статье я приведу примеры конкретных задач, которые могут давать на собеседованиях, и разберу, на что смотрит работодатель при их решении.
▪Читать
@javatg
В процессе подбора кандидатов работодатель хочет понять, насколько ему подходит тот или иной соискатель — насколько он комфортен в общении и работе, обладает необходимым опытом и, что самое важное, техническими навыками для предстоящей работы.
В этой статье я приведу примеры конкретных задач, которые могут давать на собеседованиях, и разберу, на что смотрит работодатель при их решении.
▪Читать
@javatg
👍19❤4🔥2
🌕 Проверка идентификационных номеров: реализация алгоритма Луны на Java
Сначала метод выполняет проверку данных: он удаляет все пробелы, которые часто добавляются, чтобы сделать номера кредитных карт более читаемыми. Он также проверяет, что строка состоит только из цифр, без лишних символов, и обрабатывает любое возникающее исключение NumberFormatException.
Затем код перебирает каждую цифру, начиная справа, чтобы выполнить действия, описанные в разделе выше. Каждая вторая цифра умножается на 2, и в тех случаях, когда в результате получается число больше 9, эти две цифры суммируются вместе, чтобы вычислить однозначное число.
На каждой итерации цикла полученное число суммируется с переменной sum, которая используется для отслеживания общей суммы. После завершения цикла метод возвращает true, если сумма делится на 10.
Полный код можно найти на Github.
Отправляйте свою реализацию в комментарии👇
@javatg
public static boolean validateNumber(String number){
/*
Validation of user input: blank spaces are removed from the
numeric string. Also, the code ensures that the input is numeric
*/
number = number.replaceAll(" ", "");
try{
Long.parseLong(number);
} catch (NumberFormatException e){
System.out.println("Invalid input");
return false;
}
int sum = 0;
boolean alternateDigit = false;
/*
Starting from the right of the string, the code loops through each
digit and multiplies every second digit by 2.
*/
for(int i = number.length()-1; i >= 0; i--){
int digit = Integer.parseInt(number.substring(i, i+1));
if(alternateDigit){
digit *= 2;
if(digit > 9){
digit = 1 + (digit % 10);
}
}
sum += digit;
alternateDigit = !alternateDigit;
}
return (sum % 10 == 0);
}
Сначала метод выполняет проверку данных: он удаляет все пробелы, которые часто добавляются, чтобы сделать номера кредитных карт более читаемыми. Он также проверяет, что строка состоит только из цифр, без лишних символов, и обрабатывает любое возникающее исключение NumberFormatException.
Затем код перебирает каждую цифру, начиная справа, чтобы выполнить действия, описанные в разделе выше. Каждая вторая цифра умножается на 2, и в тех случаях, когда в результате получается число больше 9, эти две цифры суммируются вместе, чтобы вычислить однозначное число.
На каждой итерации цикла полученное число суммируется с переменной sum, которая используется для отслеживания общей суммы. После завершения цикла метод возвращает true, если сумма делится на 10.
Полный код можно найти на Github.
Отправляйте свою реализацию в комментарии👇
@javatg
🔥8👍5❤2👎1
Иногда в программах приходится создавать классы исключительно для хранения данных, а затем — функции определенных стандартов внутри этих классов.
В Kotlin все эти проблемы решаются с помощью классов данных, создаваемых с той же целью, но функции определенных стандартов в них содержатся автоматически:
data class Person(val name: String, val surname: String)
▪ Читать
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8👎2❤1🔥1
Максимальная площадь острова
Сложность: Средняя
Условие задачи: Условие задачи:
Дан двумерный массив размера m x n. "1" отвечает за сушу, "0" - за океан. Необходимо опеределить максмимальную площадь острова из островов, расположенных на карте.
Островом считается территория, образованная из "1", расположенных сверху, справа, снизу и слева относительно друг друга.
Пример:
Ввод:
grid = [[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,1,1,0,0,1,0,1,0,0],[0,1,0,0,1,1,0,0,1,1,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,0,1,1,0,0,0,0]]
Вывод:
6
Ввод:
grid = [[0,0,0,0,0,0,0,0]]
Вывод:
0
Решение
Временная сложность:
O(m*n)
Пространственная сложность:
O(m*n)
class Solution {
public int maxAreaOfIsland(int[][] grid) {
int maxArea = 0;
for(int i = 0; i < grid.length; i++) {
for(int j = 0; j < grid[0].length; j++) {
if(grid[i][j] == 1) {
maxArea = Math.max(maxArea, findArea(grid, i, j));
}
}
}
return maxArea;
}
private int findArea(int[][] grid, int row, int col) {
if(row < 0 || row >= grid.length || col < 0 || col >= grid[0].length || grid[row][col] == 0) {
return 0;
}
grid[row][col] = 0;
int count = 1;
count += findArea(grid, row, col-1);
count += findArea(grid, row, col+1);
count += findArea(grid, row-1, col);
count += findArea(grid, row+1, col);
return count;
}
}
Пишите свое решение в комментариях👇
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤4👎2🔥1
На первый взгляд может показаться, что это очередной курс по Java, но это не так. Цель лекций — научить студентов писать качественный, понятный код с использованием лучших практик и тестирования.
Каждый урок подкреплён практикой с заданиями для проверки усвоения материала и заданиями:
https://openlearninglibrary.mit.edu/courses/course-v1:MITx+6.005.1x+3T2016/course/
#java
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤4👎1🔥1
Одним из достоинств Kotlin, отличающих его от других языков, в том числе Java, является подход к реализации утилитных классов. Утилиты могут быть полезными инструментами в разработке программного обеспечения, хотя и не всегда являются лучшим выбором при проектировании объектно-ориентированных систем.
Как Java-разработчику, вам будет полезно рассмотреть различные способы реализации утилитных классов в Kotlin и узнать, что делается в этом языке “под капотом”. Kotlin предлагает целый ряд различных способов, упрощающих переход от Java, начиная от сокращения стереотипного кода и заканчивая улучшением читаемости кода.
Понимание различий в реализации утилитных классов в Kotlin и Java — важный шаг в освоении такого мощного языка, как Kotlin. Будь вы опытный Java-разработчик, желающий расширить спектр своих навыков, или новичок в программировании, уделите внимание этому аспекту.
Как вам известно, создать утилитный класс в Java довольно просто. Процесс включает следующие шаги.
▪ Читать
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🔥1
Задача. Слияние двух бинарных деревьев
Сложность: Лёгкая
Условие задачи: Даны два бинарных дерева, необходимо осуществить их наложение друг на друга и вывод результатов в новом дереве.
Примечание: Наложение представляет из себя суммирование соответствующих значений из узлов двух деревьев.
Пример:
Ввод: root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7]
Вывод:[3,4,5,5,4,null,7]
Ввод: root1 = [1], root2 = [1,2]
Вывод: [2,2]
Решение
Пишите свое мнение в комментариях👇
@javatg
Сложность: Лёгкая
Условие задачи: Даны два бинарных дерева, необходимо осуществить их наложение друг на друга и вывод результатов в новом дереве.
Примечание: Наложение представляет из себя суммирование соответствующих значений из узлов двух деревьев.
Пример:
Ввод: root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7]
Вывод:[3,4,5,5,4,null,7]
Ввод: root1 = [1], root2 = [1,2]
Вывод: [2,2]
Решение
class Solution {
public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
if (root1==null && root2==null) return null;
if (root1==null) return root2;
if (root2==null) return root1;
root1.val = root1.val+root2.val;
root1.left = mergeTrees(root1.left, root2.left);
root1.right = mergeTrees(root1.right, root2.right);
return root1;
}
}
Пишите свое мнение в комментариях👇
@javatg
👍13❤3🔥1
📚 Подборка бесплатных и актуальных книг по всем языкам программирования.
Java книги
Книги датасаентиста
Golang библиотека
Python библиотека
Крупнейший склад ит-книг
C++ книги
C# книги
Frontend книги
Книги по базам данных
Топ книги по Linux
Библиотека машинного обучения
Сохраняем себе, чтобы не потерять
Java книги
Книги датасаентиста
Golang библиотека
Python библиотека
Крупнейший склад ит-книг
C++ книги
C# книги
Frontend книги
Книги по базам данных
Топ книги по Linux
Библиотека машинного обучения
Сохраняем себе, чтобы не потерять
👍9❤1🔥1
🎧 JavaFX пример MP3-плеера
Это простой пример mp3-плеера, созданного с помощью JavaFX. Приложение имеет кнопку для открытия и воспроизведения трека, кнопки паузы, возобновления и остановки с соответствующими функциями. Для воспроизведения музыки мы используем класс MediaPlayer -> Класс MediaPlayer предоставляет элементы управления для воспроизведения мультимедиа.
MediaPlayer предоставляет элементы управления pause(), play(), stop() и seek(), а также свойства rate и autoPlay, которые применяются ко всем типам медиа. В коде также представлены свойства balance, mute и volume, которые управляют характеристиками воспроизведения аудио.
▪ Читать
@javatg
Это простой пример mp3-плеера, созданного с помощью JavaFX. Приложение имеет кнопку для открытия и воспроизведения трека, кнопки паузы, возобновления и остановки с соответствующими функциями. Для воспроизведения музыки мы используем класс MediaPlayer -> Класс MediaPlayer предоставляет элементы управления для воспроизведения мультимедиа.
MediaPlayer предоставляет элементы управления pause(), play(), stop() и seek(), а также свойства rate и autoPlay, которые применяются ко всем типам медиа. В коде также представлены свойства balance, mute и volume, которые управляют характеристиками воспроизведения аудио.
▪ Читать
@javatg
👍11🔥3👎2❤1
Вашему вниманию предлагается набор рекомендаций, соблюдение которых поможет улучшить качество вашего Java-кода.
1. По возможности отдавайте предпочтение примитивам, а не классам-оболочкам
Long idNumber;
long idNumber; // long занимает меньше памяти, чем Long
2. Попробуйте использовать подходящий тип для вашей переменнойЕсли два или более типов удовлетворяют вашим функциональным потребностям, используйте тот тип, который занимает меньше места в памяти.
i
nt birthYear;
short birthYear; // лучше, потому что год рождения не может быть пятизначным
int personRunningSpeedKmHour;
byte personRunningSpeedKmHour; // лучше, потому что скорость движения человека ограничена
3. При проверке нечетности числа побитовый оператор AND намного быстрее, чем арифметический оператор по модулю
public boolean isOdd(int num) {
return (num & 1) != 0;
}
// лучший способ проверить нечетность числа
4. Избегайте избыточной инициализации (0, false, null..)
Не инициализируйте переменные с их инициализацией по умолчанию, например, boolean по умолчанию имеет значение false, поэтому избыточно инициализировать его значением false.
String name = null; // избыточно
int speed = 0; // избыточно
boolean isOpen = false; // избыточно
String name;
int speed;
boolean isOpen;
// те же значения в более чистом коде
5. Объявляйте членов класса закрытыми везде, где это возможно, и всегда давайте модификатору доступа максимально ограниченный доступ
public int age; // очень плохо
int age; // плохо
private int age; // хорошо
6. Избегайте использования ключевого слова “new” при создании строки
String s1 = new String("AnyString") ; // плохая реализация
// Конструктор создает новый объект и добавляет литерал в кучу
String s2 = "AnyString" ; // хорошо: быстрое создание экземпляра
// Этот ярлык ссылается на элемент в пуле строк и создает новый объект, только если литерал отсутствует в пуле строк.
7. Для объединения нескольких строк используйте StringBuilder или StringBuffer вместо использования оператора +
Оператор + неэффективен, поскольку компилятор Java создает несколько промежуточных объектов String перед созданием окончательной объединенной строки.
StringBuilder или StringBuffer изменяют String без создания промежуточных объектов String.
String address = streetNumber +" "+ streetName +" "
+cityName+" "+cityNumber+" "+ countryName; // плохо
StringBuilder address = new StringBuilder(streetNumber).append(" ")
.append(streetName).append(" ").append(cityName).append(" ")
.append(cityNumber).append(" ").append(countryName); // хорошо
Учтите, что StringBuilder не потокобезопасен, не синхронизирован, но он быстрее, чем StringBuffer, который потокобезопасен и синхронизирован.
8. Используйте подчеркивание в числовых литералах
int myMoneyInBank = 58356823;
int myMoneyInBank = 58_356_823; // лучше читаемый код
long billsToPay = 1000000000L;
long billsToPay = 1_000_000_000L; // лучше читаемый код
9. Избегайте использования “for loop” с индексами
Не используйте for loop с переменной индекса (или счетчика), если вы можете заменить его расширенным циклом for (начиная с Java 5) или forEach (начиная с Java 8). Это связано с тем, что переменная индекса подвержена ошибкам, поскольку мы можем случайно изменить ее в теле цикла или начать индекс с 1 вместо 0.
for (int i = 0; i < names.length; i++)
{ saveInDb(names[i]); }
for (String name : names)
{ saveInDb(name); } // более чистый код
10. Заменяйте try-catch-finally на try-with-resources
Scanner scanner = null;
try
{scanner = new Scanner(new File("test.txt"));
while (scanner.hasNext())
{System.out.println(scanner.nextLine());}}
catch (FileNotFoundException e)
{e.printStackTrace();}
finally
{if (scanner != null)
{scanner.close();}}
// подвержено ошибкам, так как мы можем забыть закрыть сканер в блоке finally
try (Scanner scanner = new Scanner(new File("test.txt")))
{while (scanner.hasNext())
{System.out.println(scanner.nextLine());}}
catch (FileNotFoundException fnfe)
{fnfe.printStackTrace();}
// чище и более лаконично
▪Читать дальше
Please open Telegram to view this post
VIEW IN TELEGRAM
👍40❤4👎4🔥3🥰1
В этом руководстве подробно рассмотрено, как перебирать Hashmap, используя различные типы циклов в Java.
Как перебрать Hashmap в Java с помощью цикла for-each
Один из самых простых способов перебора Hashmap — использование цикла for-each. Вот пример того, как это сделать:
HashMap<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println("Key: " + key + ", Value: " + value);
}
В этом примере мы сначала создаем новый Hashmap и добавляем к нему несколько пар ключ-значение. Затем мы используем цикл for-each для итерации по Hashmap, извлекая каждую пару ключ-значение как объект Map.Entry. Затем мы извлекаем ключ и значение из каждого объекта Map.Entry и выводим их на консоль.
Как выполнить итерацию по Hashmap в Java, используя цикл while с итератором.
Другой способ выполнить итерацию по Hashmap — использовать цикл while с итератором. Перед вами пример того, как это сделать:
HashMap<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Integer> entry = iterator.next();
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println("Key: " + key + ", Value: " + value);
}
Здесь мы снова создаем новый Hashmap и добавляем к нему несколько пар ключ-значение. Затем мы создаем новый объект Iterator с помощью метода entrySet(), который возвращает набор пар ключ-значение в виде объектов Map.Entry. Затем мы используем цикл while с методами hasNext() и next() для перебора набора и извлечения каждой пары ключ-значение. И наконец, мы извлекаем ключ и значение из каждого объекта Map.Entry и выводим их на консоль.
Как перебирать Hashmap Java с помощью for loop с keySet()
В Java метод keySet() — это метод класса java.util.HashMap, который возвращает возвращает установленное представление ключей, содержащихся в Hashmap. Это означает, что он возвращает набор всех ключей в Hashmap, которые можно использовать для перебора ключей или выполнения над ними других операций.
То, что метод keySet() возвращает набор уникальных элементов без дубликатов, связано с тем, что ключи в Hashmap должны быть уникальными, а метод keySet() гарантирует, что возвращаемый им набор ключей не содержит повторяющихся значений.
Мы также можем перебирать Hashmap, используя цикл for с методом keySet(). Вот пример того, как это выполнить:
ashMap<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
for (String key : map.keySet()) {
Integer value = map.get(key);
System.out.println("Key: " + key + ", Value: " + value);
В данном примере мы снова создаем новый Hashmap и добавляем к ней несколько пар ключ-значение. Затем мы используем цикл for с методом keySet() для итерации по Hashmap, извлечения каждого ключа и использования его для получения соответствующего значения из Hashmap. Затем мы выводим ключ и значение на консоль.Читать полностью
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥3❤1
🧮Как исправлять исключения в Java — подробное руководство
Это руководство поможет вам научиться исправлять распространенные исключения в Java. Помимо теории, вы увидите примеры кода по исправлению таких проблем.
Общие рекомендации по предотвращению исключений в Java
Чтобы избежать появления каких-либо исключений в Java, важно понимать и следовать рекомендациям по кодированию:
1. Всегда проверяйте ввод пользователя, прежде чем использовать его в своем коде.
2. Используйте блоки try-catch, throws, throw, в зависимости от того, что подходит для конкретного сценария.
3. Не пренебрегайте сообщениями в коде об обработках и наличии ошибок. Это поможет определить и исправить проблемы.
4. Обязательно регистрируйте исключения в целях отладки. Вы можете использовать сообщения регистратора, чтобы помочь выявить проблемы.
5. Следуйте рекомендациям по написанию кода, чтобы избежать исключений, и тщательно тестируйте свой код.
6. Обновляйте свои зависимости API, чтобы убедиться, что вы используете самые последние и самые стабильные версии библиотек и фреймворков.
7. Используйте необходимые инструменты и среды тестирования для выявления потенциальных проблем в коде до того, как они вызовут исключения.
8. Отслеживайте производительность вашего приложения и журналы, чтобы быстро выявлять и устранять любые проблемы.
9. Будьте в курсе передовых практик безопасности, чтобы убедиться, что ваш код безопасен и защищен от любых потенциальных атак.
10. Тщательно документируйте свой код и его исключения, чтобы другим разработчикам было легче его понять и поддерживать.
Читать полностью
@javatg
Это руководство поможет вам научиться исправлять распространенные исключения в Java. Помимо теории, вы увидите примеры кода по исправлению таких проблем.
Общие рекомендации по предотвращению исключений в Java
Чтобы избежать появления каких-либо исключений в Java, важно понимать и следовать рекомендациям по кодированию:
1. Всегда проверяйте ввод пользователя, прежде чем использовать его в своем коде.
2. Используйте блоки try-catch, throws, throw, в зависимости от того, что подходит для конкретного сценария.
3. Не пренебрегайте сообщениями в коде об обработках и наличии ошибок. Это поможет определить и исправить проблемы.
4. Обязательно регистрируйте исключения в целях отладки. Вы можете использовать сообщения регистратора, чтобы помочь выявить проблемы.
5. Следуйте рекомендациям по написанию кода, чтобы избежать исключений, и тщательно тестируйте свой код.
6. Обновляйте свои зависимости API, чтобы убедиться, что вы используете самые последние и самые стабильные версии библиотек и фреймворков.
7. Используйте необходимые инструменты и среды тестирования для выявления потенциальных проблем в коде до того, как они вызовут исключения.
8. Отслеживайте производительность вашего приложения и журналы, чтобы быстро выявлять и устранять любые проблемы.
9. Будьте в курсе передовых практик безопасности, чтобы убедиться, что ваш код безопасен и защищен от любых потенциальных атак.
10. Тщательно документируйте свой код и его исключения, чтобы другим разработчикам было легче его понять и поддерживать.
Читать полностью
@javatg
👍13❤1👎1🔥1
📝Как инициализировать ArrayList в Java.
ArrayList — это реализация изменяемого массива интерфейса List, которая используется для хранения и управления коллекцией похожих переменных. ArrayList напоминает массив, но обеспечивает большую гибкость. Объект ArrayList более динамичен и дает вам широкий контроль над элементами в коллекции.
Как объявить ArrayList со значениями в Java
Объявить ArrayList в Java можно следующим способом:
Перед тем, как использовать ArrayList, вы должны сначала импортировать его из одноименного класса: import java.util.ArrayList;.
После этого вы можете создать новый объект ArrayList. В приведенном выше коде мы создали такой объект под именем people.
Обратите внимание, что тип данных ArrayList указывается в угловых скобках: ArrayList<String>.
Несмотря на то, что мы создали объект ArrayList, в нем пока нет элементов. Далее вы узнаете, как добавлять к нему элементы.
Учтите, что вы можете создать ArrayList со значениями/элементами в точке объявления, используя метод add в блоке инициализатора:
Читать полностью
@javatg
ArrayList — это реализация изменяемого массива интерфейса List, которая используется для хранения и управления коллекцией похожих переменных. ArrayList напоминает массив, но обеспечивает большую гибкость. Объект ArrayList более динамичен и дает вам широкий контроль над элементами в коллекции.
Как объявить ArrayList со значениями в Java
Объявить ArrayList в Java можно следующим способом:
import java.util.ArrayList;
public class ArrayListTut {
public static void main(String[] args) {
ArrayList<String> people = new ArrayList<>();
}
}
Перед тем, как использовать ArrayList, вы должны сначала импортировать его из одноименного класса: import java.util.ArrayList;.
После этого вы можете создать новый объект ArrayList. В приведенном выше коде мы создали такой объект под именем people.
Обратите внимание, что тип данных ArrayList указывается в угловых скобках: ArrayList<String>.
Несмотря на то, что мы создали объект ArrayList, в нем пока нет элементов. Далее вы узнаете, как добавлять к нему элементы.
Учтите, что вы можете создать ArrayList со значениями/элементами в точке объявления, используя метод add в блоке инициализатора:
import java.util.ArrayList;
public class ArrayListTut {
public static void main(String[] args) {
ArrayList<String> people = new ArrayList<>() {{
add("John");
add("Jane");
add("Doe");
}};
System.out.println(people);
// [John, Jane, Doe]
}
}
Читать полностью
@javatg
👍18👎3🔥1🥰1
Error Prone Support -- это инструмент статического анализа для Java, который выявляет распространенные ошибки во время компиляции.
Это библиотека является расширенной версии Error Prone с дополнительными средствами проверки ошибок.
🔍 Документация
#github #java
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🔥2