Sdscompany.ru

Компьютерный журнал
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Java arraylist int

ArrayList из массива int в java

Я новичок в концепции arraylist. Я сделал короткую программу которая выглядит следующим образом:

Это дает выход: Arraylist contains:[I@3e25a5

Теперь мои вопросы таковы:

  1. Как отобразить правильное значение, т. е. 1 2 3.
  2. Как я могу получить доступ к одному элементу массива a1, т. е. если я хочу знать значение в a1[1].

10 Ответов

Во-первых, для инициализации контейнера вы не можете использовать примитивный тип (например, int ; вы можете использовать int[] , но поскольку вам нужен только массив целых чисел, я не вижу в этом никакого смысла). Вместо этого следует использовать Integer , как показано ниже:

Для добавления элементов просто используйте функцию add :

И последнее, но не менее важное: для печати ArrayList вы можете использовать встроенную функциональность toString() :

Если вы хотите получить доступ к элементу i , где i -индекс от 0 до длины массива-1, Вы можете сделать следующее :

Я предлагаю сначала прочитать о контейнерах Java, прежде чем начать работать с ними.

Более простым, чем это.

В первой строке вы создаете объект,а в конструкторе передаете параметр массива в список.

Во второй строке находятся все методы класса List: .get (. )

В java массив является объектом. Поэтому вызов arl.get(0) возвращает примитивный объект int[], который отображается как ascii в вашем вызове System.out.

Поэтому ответ на ваш первый вопрос таков

Если вы ищете определенные элементы, то возвращаемый объект int[] должен быть указан как таковой. Ответ на ваш второй вопрос будет примерно таким:

Вы должны использовать вместо :

Здесь все правы. Вы не можете распечатать объект int[] напрямую, но также нет необходимости не использовать ArrayList целочисленных массивов.

означает разбиение строкового объекта на подстроку, если вы хотите вставить что-либо между ними, например запятые.

Вот что я думаю, что amv искал с точки зрения int array.

Этот ответ немного запоздал для amv, но все же может быть полезен другим.

Чтобы получить один массив int[] в индексе ArrayList by:

Чтобы получить все массивы int[] в ArrayList:

Форматирование вывода может быть выполнено на основе этой логики. Гудлак!!

java.util.Arrays.toString() преобразует массивы Java в строку:

Ответ на вопрос 1

Ответ на вопрос 2

Похожие вопросы:

Я видел вопрос: создать ArrayList из массива Однако, когда я пробую это решение со следующим кодом, оно не совсем работает во всех случаях: import java.util.ArrayList; import java.util.Arrays;.

Есть ли ярлык для добавления (фактически добавления ) массива int к ArrayList? для следующего примера ArrayList list=new ArrayList (); int[] ints=<2,4,5,67,8>; Или мне.

Я сохраняю некоторые значения из базы данных с помощью этой функции (я был заменен вектором, потому что устарел) : // database function public ArrayList selectQuery(String query) <.

У меня есть проблема в преобразовании из массива в ArrayList public class one < public static void main(String args[]) < int y[]=<12,25,38,46>; two p=new two(); p.setLocations(y); > > import.

Как установить ArrayList из integers[] равным ArrayList из doubles[]? Я пробовал много разных вещей, но ни одна из них не работала. Я уверен, что есть очень простой ответ на эту проблему, но я не.

Я работаю над написанием решателя судоку, и я хочу, чтобы сетка была сохранена как arraylist из arraylist из ints. each spot будет иметь arraylist ints всех возможных чисел (или определенное.

Я пытаюсь простой код, и я не могу понять, что не так. Я пытаюсь добавить массив int[] к ArrayList. Он добавляется правильно. Но как только у меня есть более 1 элемента в ArrayList, каждый элемент в.

Могу ли я инициализировать ArrayList из массива 2D, это вещь? Поэтому, когда я пытаюсь инициализировать это, ниже приведен мой код ArrayList [][] suffle = new.

Я пытаюсь реализовать сортировку по ведрам и хочу создать arraylist для каждого индекса массива. Я хочу сделать что-то вроде этого: int bucket[]=new int[max+1]; for(i=0;i

How to convert int[] to ArrayList in Java 8? Example Tutorial

I once asked this question to one of the Java developers during Interview and like many other, he answered that Arrays.asList() can convert an array of primitive integer values to ArrayList in Java, which was actually wrong. Even though, Arrays.asList() is the go-to method to convert an array to ArrayList in Java when it comes to converting a primitive array to ArrayList , this method is not useful. The Arrays.asList() method does not deal with boxing and it will just create a List which is not what you want. In fact, there was no shortcut to convert an int[] to ArrayList or long[] to ArrayList till Java 8.

From JDK 8 onwards, you either hade to make a utility method or need to use general purpose Java libraries like Google Guava or Apache Commons to convert an array of primitive values like. byte, short, char, int, long, float, and double to ArrayList of Byte, Character, Short, Integer, Long, Float, and Double wrapper classes.

Читать еще:  Как восстановить удаленные фотографии с флешки фотоаппарата

Though from Java 8 onwards, you can use the java.util.Stream to convert an int[] to ArrayList . There are specialized stream implementations for primitive data types like IntStream for primitive int, LongStream for primitive long and DoubleStream for primitive double, which can convert an array of primitive values to a stream of primitive values.

Once you get the Stream of int values, you can use boxed() method to convert it to Stream of Integer wrapper objects. After that you can just convert Stream to List as shown in that article i.e. you can use collect() method of the stream with Collectors.toList() to get a List.

int[] to List

If you want ArrayList instead of List then you can pass a Supplier to Collectors, which will accumulate elements into an ArrayList as shown below:

int[] primes = new int[]<2, 3, 5, 7, 11, 13, 17>;
ArrayList list = IntStream.of(primes)
.boxed().collect(Collectors.toCollection(ArrayList::new));

Alternatively, you can also use the copy constructor of Collection interface to create an ArrayList by copying all elements from the List instance as shown in following example:

List list = IntStream.of(primes).boxed().collect(Collectors.toList());
ArrayList arraylist = new ArrayList<>(list);

What is this code doing? Well, if you are not very familiar with Java 8, Stream and method reference then here is a step by step explanation of above one-liner of converting a primitive array to ArrayList in JDK 8:

1) The IntStream.of(primes) is converting an int array to IntStream object.

2) The boxed() method of IntStream convert applies boxing on each element of IntStream and return a Stream of Integer i.e it converts IntStream to Stream object.

3) The collect() method collects all elements of Stream into any Collection class by using Collectors of Java 8. A Collector encapsulates the functions used as arguments to collect(Supplier, BiConsumer, BiConsumer) , allowing for reuse of collection strategies and composition of collect operations such as multiple-level grouping or partitioning.

4) The Collectors.toCollection() method collects elements of Stream into a Collection which is specified by the first parameter. Here we are passing ArrayList::new which is a constructor reference, which means all elements of Stream will be collected into an ArrayList. See The Complete Java MasterClass to learn more.

How to convert int[] to ArrayList of Integer in Java 8

By far, That was the simplest way to convert an array of primitive data types to List of wrapper objects like an array of ints to ArrayList of Integers.

Btw, there is another way to convert a primitive array to ArrayList in Java 8 by using Arrays.stream() method, which converts an array to Stream in Java 8. This method is equivalent to IntStream.of(int[]) and return an IntStream. The rest of the code will remain same i.e. you can use the following one-liner to convert an int[] to ArrayList in JDK 8:

ArrayList list = Arrays.stream(ints).boxed().collect(Collectors.toCollection(ArrayList::new));

Here is the full Java program to convert an int[] to ArrayList in Java 8:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

/*
* Java Program to convert a long[] to ArrayList in JDK 8
*/

public class Main <

public static void main(String[] args) throws Exception <

// converting an array of Integer to arrayList of Integer
int[] primes = new int[]<2, 3, 5, 7, 11, 13, 17>;
System.out.println(«primitive int array: » + Arrays.toString(primes));

ArrayList listOfInts = IntStream.of(primes).boxed().collect(Collectors.toCollection(ArrayList::new));
System.out.println(«ArrayList : » + listOfInts);

long[] numbers = new long[]<202, 3003, 2002, 3003, 222>;
ArrayList listOfLong = Arrays.stream(numbers).boxed().collect(Collectors.toCollection(ArrayList::new));
System.out.println(«primitive long array: » + Arrays.toString(numbers));
System.out.println(«ArrayList : » + listOfLong);
>

Output:
primitive int array: [2, 3, 5, 7, 11, 13, 17]
ArrayList : [2, 3, 5, 7, 11, 13, 17]
primitive long array: [202, 3003, 2002, 3003, 222]
ArrayList : [202, 3003, 2002, 3003, 222]

From the output, it’s clear that both ways of converting an array of primitive values to ArrayList of objects work fine. You can use whatever you want. See From Collections to Streams in Java 8 Using Lambda Expressions to learn more.

How to convert int[] to ArrayList of Integer in Java 6,7

If you are not running in Java 8 and want to convert int[] to ArrayList<> on an earlier version of Java like JDK 6 and JDK 7, then you have two choices, either use Google’s Guvava or Apache commons library as shown here, or write your own conversion method as shown below:

/*
* Java Program to convert int[] to ArrayList
*/

public class Main <

public static void main(String[] args) throws Exception <

int[] primes = new int[]<2, 3, 5, 7, 11, 13, 17>;
System.out.println(«primitive int array: » + Arrays.toString(primes));

ArrayList listOfInts = new ArrayList<>(primes.length);
for(int i: primes) <
listOfInts.add(i);
>

Output
primitive int array: [2, 3, 5, 7, 11, 13, 17]
ArrayList : [2, 3, 5, 7, 11, 13, 17]

The code is pretty simple and self-explanatory. We are iterating over ArrayList using enhanced for loop of Java 5 and adding each int value from array to ArrayList. When you add, Java uses autoboxing to convert an int value to Integer object, so in the end, you have an ArrayList of Integer. Though, you can also use other ways to loop over array e.g. by using for or while loop.

Читать еще:  Можно ли восстановить фотографии удаленные с флешки

One slightly important thing to note is initializing ArrayList with the length of the array. This prevents ArrayList from being resizing multiple times.

If you remember, by default ArrayList initialize with 10 elements and then keep resize when it is about to fill, I guess when the load factor grows up to 0.75 it resizes and doubles itself. This involves a lot of array copy, which can slow down your application.

It’s also a Java collection best practice to provide size while creating an instance of any Collection class like ArrayList . See The Definitive Guide of Java Performance for more such tips.

That’s all about how to convert an int[] to ArrayList in Java. You can use this technique to convert any primitive array to ArrayList of respective wrapper class like you can convert a long[] to ArrayList , a float[] to ArrayList , a double[] to ArrayList , a char[] to ArrayList , a short[] to ArrayList , and a byte[] to ArrayList in Java.

Списочный массив ArrayList

В Java массивы имеют фиксированную длину и не могут быть увеличены или уменьшены. Класс ArrayList реализует интерфейс List и может менять свой размер во время исполнения программы, при этом не обязательно указывать размерность при создании объекта. Элементы ArrayList могут быть абсолютно любых типов в том числе и null.

Пример создания объекта ArrayList

Можно инициализировать массив на этапе определения. Созданный объект list содержит свойство size. Обращение к элементам массива осуществляется с помощью метода get(). Пример :

Добавление элемента в массив ArrayList, метод add

Работать с ArrayList просто: необходимо создать объект и вставлять созданные объекты методом add(). Обращение к элементам массива осуществляется с помощью метода get(). Пример:

Замена элемента массива ArrayList, метод set

Чтобы заменить элемент в массиве, нужно использовать метод set() с указанием индекса и новым значением.

Удаление элемента массива ArrayList, метод remove

Для удаления элемента из массива используется метод remove(). Можно удалять по индексу или по объекту:

ПРИМЕЧАНИЕ: элементы, следующие после удалённого элемента, перемещаются на одну позицию ближе к началу. То же самое относится и к операции вставки элемента в середину списка.

Для очистки всего массива используется метод clear():

Определение позиции элемента ArrayList, метод indexOf

В списочном массиве ArrayList существует метод indexOf(), который ищет нужный элемент и возвращает его индекс.

Отсчёт в массиве начинается с 0, если индекс равен 2, значит он является третьим в массиве.

Проверка наличие элемента в ArrayList, метод contains

Чтобы узнать, есть в массиве какой-либо элемент, можно воспользоваться методом contains(), который вернёт логическое значение true или false в зависимости от присутствия элемента в наборе :

Понятно, что в массиве никаких овощей быть не может, поэтому в консоле будет отображено false.

Создание массива из элементов ArrayList, метод toArray

Для конвертирования набора элементов в обычный массив необходимо использовать метод toArray().

Интерфейс List

java.util.List является интерфейсом и его следует использовать вместо ArrayList следующим образом :

Или укороченный вариант для Java 7:

В примере тип ArrayList заменен на List, но в объявлении оставлен new ArrayList(). Всё остальное остаётся без изменений. Это является рекомендуемым способом.

Интерфейс List реализует более общий интерфейс коллекции Collection.

Преобразование массива в список, Arrays

Для создания массива можно не только добавлять по одному объекту через метод add(), но и сразу массив с использованием Arrays.asList(. ).

Пример создания и инициализации массива из объектов Integer.

У данного способа есть недостаток. Если вы определили списочный массив таким образом, то уже не можете вставлять или удалять элемент, хотя при этом можете изменять существующий элемент.

ArrayList в Java с примерами

Сегодня мы поработаем с ArrayList в Java: посмотрим на примерах самые популярные и полезные методы.

Данный урок является прямым продолжением статьи Коллекции в java, в которой мы разобрали основы и структуру классов коллекций. Теперь, попробуем немного попрактиковаться на примерах.

ArrayList — коллекция на основе массива. Это означает, что она имеет все преимущества и недостатки массивов java.

Это также означает, что работа с элементами данной коллекции подразумевает под собой работу с элементами массива. То есть — «под капотом» данного класса находится массив в чистом виде. Фактически, разработчики предоставляют нам удобные и простые методы для работы с массивом. Соответственно, использовать ArrayList нужно тогда, когда необходима скорость чтения из коллекции, но менее важна скорость удаления данных.

Какие основные методы предоставляет нам ArrayList:

  • add(element) — добавляет элемент в коллекцию;
  • get(index) — достает элемент по индексу;
  • clear() — полностью очищает коллекцию;
  • addAll(another_collection) — добавляет один список в другой;
  • remove(index) — удяляет объект по индексу;
  • remove(object) удаляет по объекту;
  • removeAll(collection_with_remove_elements) — если нужно удалить целый список объектов;
  • size() — возвращает длину коллекции;
  • isEmpty() — проверяет на пустоту;
  • forEach() — обход всех элементов.
Читать еще:  Как задать точку восстановления в windows 10

Выше я перечислил только самые используемые методы класса ArrayList. Теперь, посмотрим пример их использования:

Как видно на примере выше — работать с ArrayList очень просто и удобно. Названия методов говорят сами за себя.

Начнем с самого начала инициализации ArrayList. Все списки принимают только объекты одного типа. Поэтому, перед инициализацией необходимо указать: с каким типом данных мы будем работать. В примере выше я выбрал тип данных String поэтому должен был явно указать его при создании коллекции массива. Далее, при работе с колекцией, я должен добавлять только строки и работать со строками. Иначе, будет ошибка компиляции. Одной из причин появления классов оберток для примитивных типов является то, что коллекции не работают с примитивами — только с объектами. Поэтому, такой тип записи работать не будет:

Если Вы планируете создавать списки целочисленных или дробних значений — нужно воспользоваться классами обертками примитивных типов:

Отдельно я хочу показать как обходить ArrayList и выводить его значения.

Поскольку работа с элементами ArrayList и особенно вывод их в консоль — очень распространенная операция, я решил показать несколько примеров вывода. Конечно же, я предпочитаю тот, который самый простой и требует найменьше затрат по написанию:

Это все, что я хотел показать по теме работы с ArrayList. Когда Вы начнете использовать данный вид коллекции — примеры выше помогут разобраться на начальных этапах. Дальше, их использование будет интуитивным и понятным.

Вводный курс. Язык программирования Java

31. Класс ArrayList и интерфейс List

Класс ArrayList реализует интерфейс List и может менять свой размер во время исполнения программы. Поэтому при создании объекта не обязательно указывать его размерность. Элементы ArrayList могут быть любых типов, в том числе и null.

ArrayList имеет следующие конструкторы:

  • ArrayList(): создает пустой список
  • ArrayList(Collection col) : создает список, в который добавляются все элементы коллекции col.
  • ArrayList (int capacity): создает список, который имеет начальную емкость capacity

А также следующие методы:

  • public int size() — возвращает количество элементов списка
  • public boolean isEmpty() — возвращает true, если список пуст, иначе возвращает false
  • public boolean contains(Object item ) — возвращает true, если объект item содержится в списке, иначе возвращает false
  • public int indexOf(Object item) — ищет первое вхождение заданного объекта в список и возвращает его индекс. Возвращает -1, если объект не принадлежит списку.
  • public int lastIndexOf(Object item) — то же самое, но ищет последнее вхождение.
  • public Object clone() — создает копию списка.
  • public Object[] toArray() — преобразует список в массив.
  • public Object get(int index) — возвращает элемент списка с заданным номером.
  • public Object set(int index, Object item) — заменяет элемент с заданным номером.
  • public boolean add(Object o) — добавляет заданный объект в конец списка.
  • public void add(int index, Object item) — вставляет элемент в указанную позицию списка.
  • public Object remove(int index) — удаляет заданный элемент списка.
  • public void clear() — очищает список.
  • public boolean addAll(Collection c) — добавляет к списку (в конец) все элементы заданной коллекции.
  • public boolean addAll(int index, Collection c) — вставляет в список с указанной позиции все элементы коллекции.
  • protected void removeRange(int fromIndex, int toIndex) — удаляет из коллекции объекты в заданном интервале индексов (исключая toIndex).

Пример создания объекта ArrayList.

Пустой список строк
ArrayList list = new ArrayList ();

Список с заданной начальной емкостью
ArrayList list = new ArrayList (7);

Инициализация списка на этапе определения
ArrayList list = Arrays.asList(new String[] <"элемент1", " элемент2", " элемент3">);

Пример.

Создадим экземпляр класса ArrayList и рассмотрим использование методов.

Будет выведено:

ArrayList содержит следующие элементы: [Яблоня, Слива, Персик, Орех грецкий, Инжир, Груша, Вишня, Боярышник, Айва, Абрикос]
Извлечение элементов списка с использованием foreach цикла
Элемент : Яблоня
Элемент : Слива
Элемент : Персик
Элемент : Орех грецкий
Элемент : Инжир
Элемент : Груша
Элемент : Вишня
Элемент : Боярышник
Элемент : Айва
Элемент : Абрикос
Извлечение элементов списка с использованием index и размера списка
Index: 0 — элемент: Яблоня
Index: 1 — элемент: Слива
Index: 2 — элемент: Персик
Index: 3 — элемент: Орех грецкий
Index: 4 — элемент: Инжир
Index: 5 — элемент: Груша
Index: 6 — элемент: Вишня
Index: 7 — элемент: Боярышник
Index: 8 — элемент: Айва
Index: 9 — элемент: Абрикос
Извлечение элементов используя итератор
Элемент: Яблоня
Элемент: Слива
Элемент: Персик
Элемент: Орех грецкий
Элемент: Инжир
Элемент: Груша
Элемент: Вишня
Элемент: Боярышник
Элемент: Айва
Элемент: Абрикос
Размер списка: 10
Первый элемент: Яблоня
Список содержит элемент Яблоня: true
Слива медовая
Орех грецкий
Инжир
Груша
Вишня
Боярышник
Айва
Абрикос
Массив после преобразования : [Слива медовая, Орех грецкий, Инжир, Груша, Вишня, Боярышник, Айва, Абрикос]

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector