JavaRush /Java блог /Архив info.javarush /10 часто используемых приёмов для работы с массивом в Jav...
theGrass
24 уровень
Саратов

10 часто используемых приёмов для работы с массивом в Java

Статья из группы Архив info.javarush
Следующие 10 приёмов для массивов в Java являются часто используемыми. Они имеют самый высокий рейтинг в Stack Overflow – системе вопросов и ответов о программировании. 10 часто используемых приёмов для работы с массивом в Java - 1
  1. Объявление массива

    
    String[] aArray = new String[5];
    String[] bArray = {"a","b","c", "d", "e"};
    String[] cArray = new String[]{"a","b","c","d","e"};
    
  2. Вывод массива в Java

    
    int[] intArray = { 1, 2, 3, 4, 5 };
    String intArrayString = Arrays.toString(intArray);
     
    // print directly will print reference value
    System.out.println(intArray);
    // [I@7150bd4d
     
    System.out.println(intArrayString);
    // [1, 2, 3, 4, 5]
    
  3. Создание ArrayList из массива

    
    String[] stringArray = { "a", "b", "c", "d", "e" };
    ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));
    System.out.println(arrayList);
    // [a, b, c, d, e]
    
  4. Проверка массива на наличие конкретного значения

    
    String[] stringArray = { "a", "b", "c", "d", "e" };
    boolean b = Arrays.asList(stringArray).contains("a");
    System.out.println(b);
    // true
    
  5. Объединение двух массивов

    
    int[] intArray = { 1, 2, 3, 4, 5 };
    int[] intArray2 = { 6, 7, 8, 9, 10 };
    // Apache Commons Lang library
    int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);
    
  6. Объявление массива в одной строке

    
    method(new String[]{"a", "b", "c", "d", "e"});
    
  7. Объединение элементов массива в строку

    
    // containing the provided list of elements
    // Apache common lang
    String j = StringUtils.join(new String[] { "a", "b", "c" }, ", ");
    System.out.println(j);
    // a, b, c
    
  8. Преобразование ArrayList в массив

    
    String[] stringArray = { "a", "b", "c", "d", "e" };
    ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));
    String[] stringArr = new String[arrayList.size()];
    arrayList.toArray(stringArr);
    for (String s : stringArr)
    	System.out.println(s);
    
  9. Преобразование массива во множество (Set)

    
    Set<String> set = new HashSet<String>(Arrays.asList(stringArray));
    System.out.println(set);
    //[d, e, b, c, a]
    
  10. Возврат массива с элементами в обратном порядке

    
    int[] intArray = { 1, 2, 3, 4, 5 };
    ArrayUtils.reverse(intArray);
    System.out.println(Arrays.toString(intArray));
    //[5, 4, 3, 2, 1]
    
  11. Удаление элемента из массива

    
    int[] intArray = { 1, 2, 3, 4, 5 };
    int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array
    System.out.println(Arrays.toString(removed));
    

    И еще — создание массива типа byte на основе значения типа int (прим. берем ByteBuffer, выделяем в нем 4 байта и кладем число int 8, затем все это (0, 0, 0, 8) преобразуем в массив типа byte с помощью вызова array())

    
    byte[] bytes = ByteBuffer.allocate(4).putInt(8).array();
     
    for (byte t : bytes) {
       System.out.format("0x%x ", t);
    }
    
Комментарии (25)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
3 мая 2022
Спасибо. Поучительно.
Maksim Уровень 19
21 января 2022
Спасибо, очень полезная статья!
19 января 2022
ArrayList<String> arrayList1 = new ArrayList<String>(Arrays.asList("a", "b", "c")); ArrayList<String> arrayList2 = new ArrayList<String>(Arrays.asList("d", "e", "f")); arrayList1.addAll(arrayList1.size(), arrayList2); System.out.println(arrayList1); А с таким примером суммирования строк все норм? просто про него нигде не пишут, а он вроде простой и без сторонних библиотек. Подводные камни есть в этой реализации ?
Maxim Уровень 25
5 января 2022
В п.1 я бы добавил пример для печати многомерных массивов с помощью метода Arrays.deepToString()
Anonymous #2775077 Уровень 16
1 октября 2021
Вариант из массива в строку: String str = Arrays.toString(intArray).replaceAll(", |\\[|\\]", "");
BariO Уровень 19
21 февраля 2020
в 6м и 9м примерах можно обойтись стандартными средствами Java. В классе String так же есть метод join а в обратном порядке можно вывести при помощи Collections.reverse()
Павел Медведев Уровень 35
19 октября 2019
Данная статья должна называться "10 методов использование сторонней библиотеки "и должна быть дополнена информации как подключить библиотеку и риски в использование библиотек при написание проекта .
Ilya Prince Уровень 1
21 сентября 2019
Вывод массива в Java: int[] intArray = { 1, 2, 3, 4, 5 }; String intArrayString = Arrays.toString(intArray); System.out.println(intArrayString); // [1, 2, 3, 4, 5] --------------------------------------------------------------------------------------------------------------------- Спасибо, метод рабочий, но если массив 2хмерный то не работает) выводит значения типо: [I@7150bd4d если выводить вот так: System.out.println(peremenniemassiva[0][1] + " " + peremenniemassiva[4][1]); то работает, а System.out.println(intArrayString); нет ... (только в одномерных массивах работает) может кто подскажет что не так делаю?) вот мой код, вроде все правильно написал: int p [ ][ ] = { {1, 1}, {2, 4}, {3, 9}, {4, 16}, {5, 25}, {6, 36}, {7, 49}, {8, 64}, {9, 81}, {10, 100}, }; String intArrayString = Arrays.toString(p); System.out.println(intArrayString); // [[I@3feba861, [I@5b480cf9, [I@6f496d9f, [I@723279cf, [I@10f87f48, [I@b4c966a, [I@2f4d3709, и так далее
Алексей Уровень 13
8 августа 2019
4 - ArrayUtils.addAll - сторонняя библиотека, без ее подключения IJ и валидатор Java Rush не пропустят решение задачи. 6 - StringUtils.join - аналогично 9 - ArrayUtils.reverse - аналогично 10 - ArrayUtils.removeElement - аналогично Круто было бы написать такую же статью, только со стандартными библиотеками :)
Дмитрий Уровень 2 Expert
7 марта 2019
круто, спасибо