Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

164
Visualizações
List of int array in Java

How do I print the contents of a List that contains a primitive type int object in it? Prefer answers to print this in one line. This is the code I have.

public static void main(String[] args) {
    List<int[]> outputList = new ArrayList<>();
    int[] result = new int[] { 0, 1 };
    int[] result2 = new int[] { 2, 3 };
    outputList.add(result);
    outputList.add(result2);

    System.out.println(Arrays.toString(outputList.get(0)));
}

This will give me [0,1] but I am looking for {[0,1],[2,3]}

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

You can do it by using StringBuffer class

public static void main(String[] args) {
    List<int[]> outputList = new ArrayList<>();
    int[] result = new int[]{0, 1};
    int[] result2 = new int[]{2, 3};
    outputList.add(result);
    outputList.add(result2);
    StringBuffer output=new StringBuffer();
    for (int[] ints : outputList)  output.append(Arrays.toString(ints)).append(",");
    output.insert(0,"{");
    output.replace(output.capacity()-2,output.capacity()-1,"}");
    System.out.println(output);
 }

Output:

{[0, 1],[2, 3]}
over 4 years ago · Santiago Trujillo Relatório

0

The following one-liner can meet your requirement:

System.out.println(
                Arrays.deepToString(outputList.toArray()).replaceAll("(?<=^)\\[", "{").replaceAll("\\](?=$)", "}"));

It uses the positive lookbehind and positive lookahead regex assertions. Note that ^ is used for the start of the text and $ is used for the end of the text. The Arrays.deepToString(outputList.toArray()) gives us the string, [[0, 1], [2, 3]] and this solution replaces [ at the start of this string and ] at the end of this string, with { and } respectively.

In case, you want to remove all whitespace as well, you can chain one more replacement as follows:

System.out.println(Arrays.deepToString(outputList.toArray()).replaceAll("(?<=^)\\[", "{")
            .replaceAll("\\](?=$)", "}").replace(" ", ""));

Demo:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String args[]) {
        List<int[]> outputList = new ArrayList<>();
        int[] result = new int[] { 0, 1 };
        int[] result2 = new int[] { 2, 3 };
        outputList.add(result);
        outputList.add(result2);

        System.out.println(
                Arrays.deepToString(outputList.toArray()).replaceAll("(?<=^)\\[", "{").replaceAll("\\](?=$)", "}"));

        System.out.println(Arrays.deepToString(outputList.toArray()).replaceAll("(?<=^)\\[", "{")
                .replaceAll("\\](?=$)", "}").replace(" ", ""));
    }
}

Output:

{[0, 1], [2, 3]}
{[0,1],[2,3]}

ONLINE DEMO

over 4 years ago · Santiago Trujillo Relatório

0

Solution

This one-liner should do it:

 System.out.println(list.stream().map(Arrays::toString)
                                 .collect(Collectors.joining(", ", "{", "}")));

(I have line-wrapped it for readability.)


Non-solutions

  1. Since you want the outer list to be enclosed in { ... } we can't use List::toString in the Stream solution above. Likewise, Arrays::deepToString is going to give us the wrong output.

    Obviously, this can be fixed using String::replace, but that strikes me as ugly. It is better to use the correct "enclosers" in the first place. (Or change the requirements!!)

  2. Calling Arrays::toString() on an int[][] produced using List::toArray will give you this:

     [[I@2a40cd94, [I@f4168b8]
    

    ... which is not even close to correct.

    Arrays::toString calls toString on the int[] objects, and array classes do not override the Object::toString implementation.

    Arrays::deepToString addresses that aspect of the problem.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda