Объединение элементов ArrayList <Integer>в одну строку без l oop in java - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть ArrayList

ArrayList<Integer> al=new ArrayList<>();
al.add(3);
al.add(8);
al.add(123);
al.add(41);

Не хочу

String s="3812341";

Можно ли это сделать без al oop или встроенными методами?

Ответы [ 3 ]

1 голос
/ 23 апреля 2020

Если вы используете Java 8, это может быть легко решено с помощью Stream API.

String s = al.stream().map(String::valueOf).reduce((x, y) -> x + y).get();

Мы строим поток с помощью функции stream (), отображаем значение Integer в значение String и, наконец, уменьшаем это в строку с помощью функции Redu (). Это вернет дополнительный объект, поэтому в конце мы используем функцию get () для получения реального значения.

0 голосов
/ 20 апреля 2020

Вы можете использовать рекурсивную функцию, чтобы сделать это, код будет:

import java.util.*;
public class ArrayListConcatenation
{

    public static void main(String[] args)
    {
        ArrayList<Integer> al=new ArrayList<>();
        al.add(3);
        al.add(8);
        al.add(123);
        al.add(41);
        int out=recursive(al,"",0);
        //do something with out
    }
    public static int recursive(ArrayList<Integer> list,String str,int i)
    {
        try
        {
            return recursive(list,str+list.get(i),i+1);
        }
        catch(IndexOutOfBoundsException e)
        {
            return Integer.valueOf(str);
        }
    }
}
0 голосов
/ 20 апреля 2020

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

String s = al.toString().replaceAll("\\[|\\]|\\, ", "");

Надеюсь, это поможет !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...