java.lang.Object
methods.Matrices<T>
- Type Parameters:
T- O tipo dos valores armazenados na matriz
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 -
Method Summary
Modifier and TypeMethodDescriptionabs()Retorna uma matriz com o valor absoluto dos dados da primeira matrizprotected static <T extends Number>
TConverte um valor do tipoNumberpara um subtipo específico deNumber.copy()Copia e retorna a cópia da matrizfrom(T[][] data) Método público que cria uma matriz inferindo o seu tipo a partir de um do primeiro elemento do array recebidoget(int row) Retorna a linha xget(int row, int col) Retorna o valor presenta na posição (x, y) da matrizintRetorna o número de colunas da matrizT[][]getData()Retorna o array contendo os dados da matrizintgetRows()Retorna o número de linhas da matrizgetType()Retorna o tipo de dado da matrizRetorna uma matriz identidade da ordem especificadabooleanVerifica se a matriz é uma matriz diagonalbooleanVerifica se a matriz é uma matriz identidadebooleanisNull()Verifica se a matriz é uma matriz nulaprotected static <T extends Number>
booleanisRegular(T[][] m) Método auxiliar para verificar se um array 2D é regularbooleanisSquare()Verifica se a matriz é uma matriz quadradabooleanVerifica se a matriz é uma matriz simétricaRetorna uma matriz com os dados da primeira mapeados para outro tiponullMatrix(Class<T> type, int rows, int columns) Retorna uma matriz nula com o número de linhas e colunas especificadovoidRandomiza os dados da matrizvoidrandomize(double bound) Randomiza os dados da matrizvoidrandomize(double origin, double bound) Randomiza os dados da matrizvoidDefine o valor da posição (x, y) da matrizvoidDefine os dados da matrizvoidsetSeed(long seed) Define uma seed fixa para obter resultados previsíveis na randomizaçãoint[]size()Retorna o tamanho da matriz como um array do tipointSubtrái a matriz b da que chamou o método e retorna a matriz resultantesubtractAll(Matrices<T>[] arr) Subtrái todas as matrizes de um array de matrizes da matriz que chamou o métodovoidsubtractAllInplace(Matrices<T>[] arr) Subtrái todas as matrizes de um array deMatrices<T>voidsubtractInplace(Matrices<T> b) Subtrái duas matrizesSoma duas matrizes e retorna a matriz resultanteSoma todas as matrizes de um array de matrizes e retorna a matriz resultantevoidsumAllInplace(Matrices<T>[] arr) Soma todas as matrizes de um array deMatrices<T>voidsumInplace(Matrices<T> b) Soma duas matrizesMúltiplica duas matrizesvoidMúltiplica uma matriz por um númerotoString()Retorna os dados da matriz organizados de forma natural comoStringRetorna a matriz transpostavoidRemove a seed para "desprevisibilizar" os resultados
-
Constructor Details
-
Matrices
Método protegido usado em métodos de fábrica para gerar a matriz- Parameters:
data- Array 2D contendo os dados da matrizrows- Número de linhas da matrizcolumns- Número de colunas da matriztype- Tipo de dado da matriz
-
-
Method Details
-
from
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
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 matrizrows- Número de linhascolumns- Número de colunas- Returns:
- A matriz nula
- Throws:
IllegalArgumentException- se o número de linhas ou colunas foi invalid input: '<'= 0
-
identity
Retorna uma matriz identidade da ordem especificada- Type Parameters:
T- Tipo de dado da matriz- Parameters:
type- Tipo de dado da matrizorder- Ordem da matriz identidade- Returns:
- Matriz identidade
- Throws:
IllegalArgumentException- se ordem ≤ 0
-
copy
Copia e retorna a cópia da matriz- Returns:
- A cópia da matriz
-
isRegular
Método auxiliar para verificar se um array 2D é regular- Type Parameters:
T- Tipo de dado do array- Parameters:
m- O array 2D- Returns:
truese o array for regular,falsecaso contrário
-
convert
Converte um valor do tipoNumberpara um subtipo específico deNumber.- 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
Retorna o array contendo os dados da matriz- Returns:
- Os dados da matriz
-
setData
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
Retorna o tipo de dado da matriz- Returns:
- O tipo de dado da matriz
-
toString
Retorna os dados da matriz organizados de forma natural comoString -
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 tipoint- Returns:
- O tamanho da matriz
-
isNull
public boolean isNull()Verifica se a matriz é uma matriz nula- Returns:
truese a matriz for nula,falsecaso contrário
-
isSquare
public boolean isSquare()Verifica se a matriz é uma matriz quadrada- Returns:
truese a matriz for quadrada,falsecaso contrário
-
isIdentity
public boolean isIdentity()Verifica se a matriz é uma matriz identidade- Returns:
truese a matriz for identidade,falsecaso contrário
-
isSymmetrical
public boolean isSymmetrical()Verifica se a matriz é uma matriz simétrica- Returns:
truese a matriz for simétrica,falsecaso contrário
-
isDiagonal
public boolean isDiagonal()Verifica se a matriz é uma matriz diagonal- Returns:
truese a matriz for diagonal,falsecaso contrário
-
get
Retorna o valor presenta na posição (x, y) da matriz- Parameters:
row- A coordenada xcol- A coordenada y- Returns:
- O valor na posição (x, y)
-
get
Retorna a linha x- Parameters:
row- A posição (x) da linha- Returns:
- A linha
-
set
Define o valor da posição (x, y) da matriz- Parameters:
row- A coordenada xcol- A coordenada yval- O valor
-
sum
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
Soma duas matrizes- Parameters:
b- A matriz a ser somada- Throws:
IllegalArgumentException- Se as duas matrizes forem de ordens diferentes
-
sumAll
Soma todas as matrizes de um array de matrizes e retorna a matriz resultante- Parameters:
arr- Array de matrizes- Returns:
- A matriz resultante
-
sumAllInplace
Soma todas as matrizes de um array deMatrices<T>- Parameters:
arr- O array de matrizes
-
subtract
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
Subtrái duas matrizes- Parameters:
b- A matriz a ser subtraída- Throws:
IllegalArgumentException- Se as duas matrizes forem de ordens diferentes
-
subtractAll
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
Subtrái todas as matrizes de um array deMatrices<T>- Parameters:
arr- O array de matrizes
-
times
Múltiplica uma matriz por um número- Parameters:
val- O número
-
times
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
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
Retorna uma matriz com o valor absoluto dos dados da primeira matriz- Returns:
- A nova matriz
-
transpose
Retorna a matriz transposta- Returns:
- A matriz transposta
-