0Pricing
Java Academy · Aula

Matrizes irregulares e formatação de tabelas

Trabalhe com matrizes 2D irregulares e imprima tabelas alinhadas usando larguras por coluna; a demonstração cria uma matriz de exemplo sem Scanner.

Matrizes irregulares e formatação de tabelas é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 2 de 6. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 6 aulas no total.

Conceito de vetor irregular

Vetores bidimensionais irregulares: cada linha pode ter um comprimento diferente. Trate as linhas separadamente; nunca suponha uma quantidade comum de colunas.

Criar um vetor irregular

Crie um vetor irregular alocando linhas com comprimentos diferentes. A mensagem explica por quê: precisamos apenas de tantas colunas quantas cada linha exigir.

public class Main {
  public static void main(String[] args) {
    // Create a jagged array with 3 rows of varying lengths
    int[][] m = new int[3][];

    // Row 0 has 2 columns
    m[0] = new int[]{1, 2};

    // Row 1 has 3 columns
    m[1] = new int[]{3, 4, 5};

    // Row 2 has 1 column
    m[2] = new int[]{6};

    // Print the jagged array
    System.out.println("Jagged array contents:");
    for (int r = 0; r < m.length; r++) {
      for (int c = 0; c < m[r].length; c++) {
        System.out.print(m[r][c] + " ");
      }
      System.out.println(); // new line after each row
    }
  }
}

Iteração segura

Itere com segurança usando m[r].length para cada linha. O comprimento do laço interno pode variar de uma linha para outra.

public class Main {
  public static void main(String[] args) {
    // Example jagged array
    int[][] m = {
      {1, 2},
      {3, 4, 5},
      {6}
    };

    // Safe nested loops for a jagged matrix
    for (int r = 0; r < m.length; r = r + 1) {
      // Always use the actual length of the current row
      for (int c = 0; c < m[r].length; c = c + 1) {
        int value = m[r][c];  // process the value
        System.out.print(value + " ");
      }
      System.out.println(); // new line after each row
    }
  }
}

Larguras das colunas

Para imprimir colunas alinhadas, calcule uma largura para cada coluna existente percorrendo todas as linhas.

// Determine the maximum number of columns among all rows
		int maxCols = 0;
		for (int r = 0; r < m.length; r = r + 1) {
		  if (m[r].length > maxCols) maxCols = m[r].length;
		}

		// For each column, store the maximum string length of values in that column
		int[] w = new int[maxCols];
		for (int r = 0; r < m.length; r = r + 1) {
		  for (int c = 0; c < m[r].length; c = c + 1) {
			int len = Integer.toString(m[r][c]).length();
			if (len > w[c]) w[c] = len;
		  }
		}

Impressão alinhada

Preencha cada valor à esquerda até atingir a largura da coluna e depois imprima a linha como uma única cadeia de caracteres.

// Print each row with left-padded columns
		for (int r = 0; r < m.length; r = r + 1) {
		  String line = "";
		  for (int c = 0; c < m[r].length; c = c + 1) {
			String s = Integer.toString(m[r][c]);
			while (s.length() < w[c]) s = " " + s;  // left pad with spaces
			line = line + s + (c + 1 < m[r].length ? " " : "");
		  }
		  System.out.println(line);
		}

Demonstração sem entrada

Execute: esta demonstração cria uma matriz irregular no código, calcula as larguras das colunas e imprime uma tabela alinhada — nenhuma entrada é necessária.

public class Main {
  // Compute per-column widths for a jagged matrix
  static int[] colWidths(int[][] m) {
    int maxCols = 0;
    for (int r = 0; r < m.length; r = r + 1) {
      if (m[r].length > maxCols) maxCols = m[r].length;
    }
    int[] w = new int[maxCols];
    for (int r = 0; r < m.length; r = r + 1) {
      for (int c = 0; c < m[r].length; c = c + 1) {
        int len = Integer.toString(m[r][c]).length();
        if (len > w[c]) w[c] = len;
      }
    }
    // Ensure at least width 1 for each column
    for (int c = 0; c < w.length; c = c + 1) {
      if (w[c] < 1) w[c] = 1;
    }
    return w;
  }

  // Print the matrix with aligned columns
  static void printTable(int[][] m) {
    int[] w = colWidths(m);
    for (int r = 0; r < m.length; r = r + 1) {
      String line = "";
      for (int c = 0; c < m[r].length; c = c + 1) {
        String s = Integer.toString(m[r][c]);
        while (s.length() < w[c]) s = " " + s;
        line = line + s + (c + 1 < m[r].length ? " " : "");
      }
      System.out.println(line);
    }
  }

  public static void main(String[] args) {
    // Sample jagged matrix (no Scanner; values are hard-coded)
    int[][] m = {
      {1, 23, 456},
      {7, 8},
      {90, 12, 3, 4}
    };

    System.out.println("Aligned table:");
    printTable(m);
  }
}

Verificação de iteração irregular

Verificação rápida: qual laço aninhado percorre com segurança todos os elementos de uma matriz irregular?

Recapitulação e próximo passo

Recapitulação: você criou vetores irregulares, iterou com segurança usando comprimentos por linha, calculou larguras de colunas e imprimiu tabelas alinhadas — sem Scanner.

Próximo passo: explore os máximos por linha e por coluna e a transposição de uma matriz.

Perguntas Frequentes

A aula “Matrizes irregulares e formatação de tabelas” é grátis?

Sim — o texto completo de “Matrizes irregulares e formatação de tabelas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 6 aulas no total.

O que vou aprender em “Matrizes irregulares e formatação de tabelas”?

Trabalhe com matrizes 2D irregulares e imprima tabelas alinhadas usando larguras por coluna; a demonstração cria uma matriz de exemplo sem Scanner. Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Java Academy?

Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 6.

Quanto tempo leva a aula “Matrizes irregulares e formatação de tabelas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Java Academy?

Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Noções básicas de matrizes 2D e iteração aninhada
  2. Matrizes irregulares e formatação de tabelas
  3. Máximos por linha/coluna, transposição e formatação
  4. Mini-projeto 2D: boletim de notas
  5. Utilitários 2D como classe auxiliar (refatoração)
  6. Limpeza e validação de dados 2D
← Voltar para Java Academy