В этой статье мы сделали подборку наиболее используемых методов для работы смассивами в Java. Разберем на примерах стандартные Java возможности и посмотрим в сторону библиотеки Apache Commons Lang.
Печать элементов массива
int[] simpleIntArray = { 2, 5, 3, 1, 4 };
String arrayString = Arrays.toString(intArray);
// если явно указать simpleIntArray, то получим распечатанную ссылку
System.out.println(simpleIntArray );
// [I@3250ac3b
// указываем преобразованный в строку массив и получаем желаемый результат
System.out.println(arrayString);
// [2, 5, 3, 1, 4]
|
Сортировка массива
Используем метод
Arrays.sort()
и свою реализацию пузырьковой сортировки массива.Создание ArrayList из массива
Простой способ создания коллекции
ArrayList
из массива может содержать подводные камни. Подробнее о возможных проблемах читайте здесь.
String[] simpleStringArray = { "a", "d", "c" };
ArrayList<String> arrayList = new ArrayList<String>(
Arrays.asList(simpleStringArray));
System.out.println(arrayList);
// [a, d, c]
|
Другой пример использования смотрите по ссылке.
Создание массива из ArrayList
Ниже представлен простой пример «на коленке», а по ссылке есть с объяснением.
String[] simpleStringArray = { "a", "c", "e" };
ArrayList<String> newArrayList = new ArrayList<String>(
Arrays.asList(simpleStringArray));
String[] arrayOfStrings = new String[newArrayList.size()];
newArrayList.toArray(arrayOfStrings);
for (String element : arrayOfStrings) {
System.out.println(element);
}
|
Содержит ли массив указанный элемент
Используем прием с представлением массива в виде коллекции и вызовом привычного метода
contains()
:
String[] simpleStringArray = { "a", "c", "e" };
boolean contains = Arrays.asList(simpleStringArray).contains("e");
// напечатает true
System.out.println(contains);
|
Копирование массива в Java
Используем методы копирования массива
Arrays.copyOf()
,Arrays.copyOfRange()
, System.arraycopy()
и даже Object.clone()
. Вот ещепримерчик.
Преобразование массива в Set
Set<String> simpleSet = new HashSet<String>(Arrays.asList(stringArray));
// получим в консоль вывод [c, b, a, d, e]
System.out.println(simpleSet);
|
Подробнее познакомиться с коллекцией
Set
можно здесь, а узнать разницу междуSet
и Set<?>
тут.Преобразование int в массив byte
// создаем новый буфер байтов указанного размера
byte[] mByteArray = ByteBuffer.allocate(4).putInt(8).array();
for (byte t : mByteArray ) {
System.out.format("0x%x ", t);
}
|
Используем библиотеку Apache Commons Lang
Библиотека Apache Commons Lang представляет собой набор служебных классов для упрощения работы с классами пакета
java.lang.*
. В нашем случае, мы воспользуемся доступными методами для работы с массивами.
Подключить эту библиотеку к своему приложению Вы можете с помощью зависимости для maven проектов:
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
|
Или же другим подходящим для Вас способом (смотрите по ссылке в коде выше).
Объединение (конкатенация) массива
int[] firstArray = { 1, 3, 5, 2 };
int[] secondArray = { 6, 8, 7 };
// используем специальный метод addAll() служебного класса ArrayUtils
int[] newArray = ArrayUtils.addAll(firstArray, secondArray);
|
Получение обратного массива
int[] simpleIntArray = { 2, 4, 6, 8, 10 };
ArrayUtils.reverse(simpleIntArray);
// Получим на консоль [10, 8, 6, 4, 2]
System.out.println(Arrays.toString(simpleIntArray));
|
Удаление элемента массива
int[] simpleIntArray = { 1, 2, 3, 4, 5 };
// создадим новый массив
int[] newArray = ArrayUtils.removeElement(simpleIntArray , 3);
System.out.println(Arrays.toString(newArray));
|
Нам этом моя подборка методов для работы с массивами в Java заканчивается. Если эта статья была Вам полезна и узнали что-то новое, то подписывайтесь на новые статьи по Java и Android!
Смотри также:
- Зачем нужна Java. http://fetisovvs.blogspot.com/2014/07/java.html
- Java-ресурсы, на которые есть смысл подписаться. http://fetisovvs.blogspot.com/2016/09/java-java.html
- Как вы можете сделать Java лучше. http://fetisovvs.blogspot.com/2016/05/apache-poi-microsoft-office-java-java.html
- Двести пятьдесят русскоязычных обучающих видео докладов и лекций о Java. http://fetisovvs.blogspot.com/2015/12/java-5-java-java.html
- ТОП-3 способа конвертировать массив в ArrayList. Пример на Java. http://fetisovvs.blogspot.com/2016/09/3-arraylist-java-java.html
- Integer и int. http://fetisovvs.blogspot.com/2016/07/integer-int-java.html
- Ввод–вывод в Java. http://fetisovvs.blogspot.com/2016/05/java-java_28.html
- В чем разница между Set и Set. Пример использования Set. http://fetisovvs.blogspot.com/2016/09/set-set-set-java.html
- Пример использования ViewFlipper в Android. Обзор контейнера ViewFlipper. http://fetisovvs.blogspot.com/2016/09/viewflipper-android-viewflipper-java.html
- Шпаргалка Java программиста 7.1 Типовые задачи: Оптимальный путь преобразования InputStream в строку. http://fetisovvs.blogspot.com/2016/04/java-71-inputstream-java.html
- Шпаргалка Java программиста 8. Библиотеки для работы с Json (Gson, Fastjson, LoganSquare, Jackson, JsonPath и другие). http://fetisovvs.blogspot.com/2016/04/java-8-json-gson-fastjson-logansquare.html
- Как установить соединение с СУБД MySQL в IntelliJ IDEA в редакции Community. http://fetisovvs.blogspot.com/2016/04/mysql-intellij-idea-community-java.html
- Работа с Bluetooth LE из Java-приложений. http://fetisovvs.blogspot.com/2016/07/bluetooth-le-java-java.html
- Программируем… выход из лабиринта. http://fetisovvs.blogspot.com/2015/10/java.html
- Основы работы с IntelliJ IDEA. Интерфейс программы. http://fetisovvs.blogspot.com/2016/09/intellij-idea-java.html
Комментариев нет:
Отправить комментарий