Package methods

Class Matrices<T extends Number>

java.lang.Object
methods.Matrices<T>
Type Parameters:
T - O tipo dos valores armazenados na matriz

public class Matrices<T extends Number> extends Object
Representa uma matriz de tipo genérico, com n° de linhas, colunas, tipo de dado e um array 2D representando a matriz

Esta classe oferece métodos para fazer operações aritméticas entre matrizes (como soma, subtração, multiplicação e divisão) Também oferece métodos de randomização de dados da matriz, verificação de propriedades (como saber se uma matriz é nula ou identidade) conversão de tipo (Double -> Integer) e mais.

Since:
xx/06/2025
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Matrices(T[][] data, int rows, int columns, Class<T> type)
    Método protegido usado em métodos de fábrica para gerar a matriz
  • Method Summary

    Modifier and Type
    Method
    Description
    abs()
    Retorna uma matriz com o valor absoluto dos dados da primeira matriz
    protected static <T extends Number>
    T
    convert(Number value, Class<T> type)
    Converte um valor do tipo Number para um subtipo específico de Number.
    Copia e retorna a cópia da matriz
    static <T extends Number>
    Matrices<T>
    from(T[][] data)
    Método público que cria uma matriz inferindo o seu tipo a partir de um do primeiro elemento do array recebido
    get(int row)
    Retorna a linha x
    get(int row, int col)
    Retorna o valor presenta na posição (x, y) da matriz
    int
    Retorna o número de colunas da matriz
    T[][]
    Retorna o array contendo os dados da matriz
    int
    Retorna o número de linhas da matriz
    Retorna o tipo de dado da matriz
    static <T extends Number>
    Matrices<T>
    identity(Class<T> type, int order)
    Retorna uma matriz identidade da ordem especificada
    boolean
    Verifica se a matriz é uma matriz diagonal
    boolean
    Verifica se a matriz é uma matriz identidade
    boolean
    Verifica se a matriz é uma matriz nula
    protected static <T extends Number>
    boolean
    isRegular(T[][] m)
    Método auxiliar para verificar se um array 2D é regular
    boolean
    Verifica se a matriz é uma matriz quadrada
    boolean
    Verifica se a matriz é uma matriz simétrica
    <R extends Number>
    Matrices<R>
    mapTo(Class<R> newType)
    Retorna uma matriz com os dados da primeira mapeados para outro tipo
    static <T extends Number>
    Matrices<T>
    nullMatrix(Class<T> type, int rows, int columns)
    Retorna uma matriz nula com o número de linhas e colunas especificado
    void
    Randomiza os dados da matriz
    void
    randomize(double bound)
    Randomiza os dados da matriz
    void
    randomize(double origin, double bound)
    Randomiza os dados da matriz
    void
    set(int row, int col, T val)
    Define o valor da posição (x, y) da matriz
    void
    setData(T[][] data)
    Define os dados da matriz
    void
    setSeed(long seed)
    Define uma seed fixa para obter resultados previsíveis na randomização
    int[]
    Retorna o tamanho da matriz como um array do tipo int
    Subtrái a matriz b da que chamou o método e retorna a matriz resultante
    Subtrái todas as matrizes de um array de matrizes da matriz que chamou o método
    void
    Subtrái todas as matrizes de um array de Matrices<T>
    void
    Subtrái duas matrizes
    Soma duas matrizes e retorna a matriz resultante
    sumAll(Matrices<T>[] arr)
    Soma todas as matrizes de um array de matrizes e retorna a matriz resultante
    void
    Soma todas as matrizes de um array de Matrices<T>
    void
    Soma duas matrizes
    Múltiplica duas matrizes
    void
    times(T val)
    Múltiplica uma matriz por um número
    Retorna os dados da matriz organizados de forma natural como String
    Retorna a matriz transposta
    void
    Remove a seed para "desprevisibilizar" os resultados

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • Matrices

      protected Matrices(T[][] data, int rows, int columns, Class<T> type)
      Método protegido usado em métodos de fábrica para gerar a matriz
      Parameters:
      data - Array 2D contendo os dados da matriz
      rows - Número de linhas da matriz
      columns - Número de colunas da matriz
      type - Tipo de dado da matriz
  • Method Details

    • from

      public static <T extends Number> Matrices<T> from(T[][] data)
      Método público que cria uma matriz inferindo o seu tipo a partir de um do primeiro elemento do array recebido
      Type Parameters:
      T - Tipo de dado dos elementos da matriz
      Parameters:
      data - Array 2D com os dados da matriz
      Returns:
      Matriz com os dados do Array
      Throws:
      IllegalArgumentException - Se o array estiver vazio ou for irregular
    • nullMatrix

      public static <T extends Number> Matrices<T> nullMatrix(Class<T> type, int rows, int columns)
      Retorna uma matriz nula com o número de linhas e colunas especificado
      Type Parameters:
      T - O tipo de dado da matriz
      Parameters:
      type - Tipo de dado da matriz
      rows - Número de linhas
      columns - Número de colunas
      Returns:
      A matriz nula
      Throws:
      IllegalArgumentException - se o número de linhas ou colunas foi invalid input: '<'= 0
    • identity

      public static <T extends Number> Matrices<T> identity(Class<T> type, int order)
      Retorna uma matriz identidade da ordem especificada
      Type Parameters:
      T - Tipo de dado da matriz
      Parameters:
      type - Tipo de dado da matriz
      order - Ordem da matriz identidade
      Returns:
      Matriz identidade
      Throws:
      IllegalArgumentException - se ordem ≤ 0
    • copy

      public Matrices<T> copy()
      Copia e retorna a cópia da matriz
      Returns:
      A cópia da matriz
    • isRegular

      protected static <T extends Number> boolean isRegular(T[][] m)
      Método auxiliar para verificar se um array 2D é regular
      Type Parameters:
      T - Tipo de dado do array
      Parameters:
      m - O array 2D
      Returns:
      true se o array for regular, false caso contrário
    • convert

      protected static <T extends Number> T convert(Number value, Class<T> type)
      Converte um valor do tipo Number para um subtipo específico de Number.
      Type Parameters:
      T - O tipo numérico de destino (ex: Integer, Double, etc.).
      Parameters:
      value - O valor a ser convertido.
      type - A classe do tipo numérico de destino.
      Returns:
      O valor convertido para o tipo especificado.
      Throws:
      IllegalArgumentException - Se o tipo especificado não for suportado.
    • getData

      public T[][] getData()
      Retorna o array contendo os dados da matriz
      Returns:
      Os dados da matriz
    • setData

      public void setData(T[][] data)
      Define os dados da matriz
      Parameters:
      data - Os dados da matriz
    • getColumns

      public int getColumns()
      Retorna o número de colunas da matriz
      Returns:
      O número de colunas da matriz
    • getRows

      public int getRows()
      Retorna o número de linhas da matriz
      Returns:
      O número de linhas da matriz
    • getType

      public Class<T> getType()
      Retorna o tipo de dado da matriz
      Returns:
      O tipo de dado da matriz
    • toString

      public String toString()
      Retorna os dados da matriz organizados de forma natural como String
      Overrides:
      toString in class Object
      Returns:
      A String com os dados da matriz
    • setSeed

      public void setSeed(long seed)
      Define uma seed fixa para obter resultados previsíveis na randomização
      Parameters:
      seed - A seed
    • unsetSeed

      public void unsetSeed()
      Remove a seed para "desprevisibilizar" os resultados
    • randomize

      public void randomize(double origin, double bound)
      Randomiza os dados da matriz
      Parameters:
      origin - O valor mínimo que se pode conseguir (inclusivo)
      bound - O valor máximo que se pode conseguir (exclusivo)
      Throws:
      UnsupportedOperationException - Se o tipo de dado da matriz não for suportado
    • randomize

      public void randomize(double bound)
      Randomiza os dados da matriz
      Parameters:
      bound - O valor máximo que se pode conseguir (exclusivo)
    • randomize

      public void randomize()
      Randomiza os dados da matriz
    • size

      public int[] size()
      Retorna o tamanho da matriz como um array do tipo int
      Returns:
      O tamanho da matriz
    • isNull

      public boolean isNull()
      Verifica se a matriz é uma matriz nula
      Returns:
      true se a matriz for nula, false caso contrário
    • isSquare

      public boolean isSquare()
      Verifica se a matriz é uma matriz quadrada
      Returns:
      true se a matriz for quadrada, false caso contrário
    • isIdentity

      public boolean isIdentity()
      Verifica se a matriz é uma matriz identidade
      Returns:
      true se a matriz for identidade, false caso contrário
    • isSymmetrical

      public boolean isSymmetrical()
      Verifica se a matriz é uma matriz simétrica
      Returns:
      true se a matriz for simétrica, false caso contrário
    • isDiagonal

      public boolean isDiagonal()
      Verifica se a matriz é uma matriz diagonal
      Returns:
      true se a matriz for diagonal, false caso contrário
    • get

      public T get(int row, int col)
      Retorna o valor presenta na posição (x, y) da matriz
      Parameters:
      row - A coordenada x
      col - A coordenada y
      Returns:
      O valor na posição (x, y)
    • get

      public List<T> get(int row)
      Retorna a linha x
      Parameters:
      row - A posição (x) da linha
      Returns:
      A linha
    • set

      public void set(int row, int col, T val)
      Define o valor da posição (x, y) da matriz
      Parameters:
      row - A coordenada x
      col - A coordenada y
      val - O valor
    • sum

      public Matrices<T> sum(Matrices<T> b)
      Soma duas matrizes e retorna a matriz resultante
      Parameters:
      b - A matriz a ser somada
      Returns:
      A matriz resultante
      Throws:
      IllegalArgumentException - se as duas matrizes forem de ordens diferentes
    • sumInplace

      public void sumInplace(Matrices<T> b)
      Soma duas matrizes
      Parameters:
      b - A matriz a ser somada
      Throws:
      IllegalArgumentException - Se as duas matrizes forem de ordens diferentes
    • sumAll

      public Matrices<T> sumAll(Matrices<T>[] arr)
      Soma todas as matrizes de um array de matrizes e retorna a matriz resultante
      Parameters:
      arr - Array de matrizes
      Returns:
      A matriz resultante
    • sumAllInplace

      public void sumAllInplace(Matrices<T>[] arr)
      Soma todas as matrizes de um array de Matrices<T>
      Parameters:
      arr - O array de matrizes
    • subtract

      public Matrices<T> subtract(Matrices<T> b)
      Subtrái a matriz b da que chamou o método e retorna a matriz resultante
      Parameters:
      b - Matriz a ser subtraída
      Returns:
      A matriz resultante
      Throws:
      IllegalArgumentException - se as matrizes não forem de mesma ordem
    • subtractInplace

      public void subtractInplace(Matrices<T> b)
      Subtrái duas matrizes
      Parameters:
      b - A matriz a ser subtraída
      Throws:
      IllegalArgumentException - Se as duas matrizes forem de ordens diferentes
    • subtractAll

      public Matrices<T> subtractAll(Matrices<T>[] arr)
      Subtrái todas as matrizes de um array de matrizes da matriz que chamou o método
      Parameters:
      arr - Array de matrizes
      Returns:
      A matriz resultante
    • subtractAllInplace

      public void subtractAllInplace(Matrices<T>[] arr)
      Subtrái todas as matrizes de um array de Matrices<T>
      Parameters:
      arr - O array de matrizes
    • times

      public void times(T val)
      Múltiplica uma matriz por um número
      Parameters:
      val - O número
    • times

      public Matrices<T> times(Matrices<T> b)
      Múltiplica duas matrizes
      Parameters:
      b - A segunda matriz (fator)
      Returns:
      A nova matriz (produto da múltiplicação)
      Throws:
      IllegalArgumentException - Se o número de linhas da 2ª matriz for diferente do número de colunas da 1ª
    • mapTo

      public <R extends Number> Matrices<R> mapTo(Class<R> newType)
      Retorna uma matriz com os dados da primeira mapeados para outro tipo
      Type Parameters:
      R - O tipo de dado da nova matriz
      Parameters:
      newType - Novo tipo
      Returns:
      Uma matriz com os dados mapeados
    • abs

      public Matrices<T> abs()
      Retorna uma matriz com o valor absoluto dos dados da primeira matriz
      Returns:
      A nova matriz
    • transpose

      public Matrices<T> transpose()
      Retorna a matriz transposta
      Returns:
      A matriz transposta