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 tipoNumber
para 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 matrizint
Retorna o número de colunas da matrizT[][]
getData()
Retorna o array contendo os dados da matrizint
getRows()
Retorna o número de linhas da matrizgetType()
Retorna o tipo de dado da matrizRetorna uma matriz identidade da ordem especificadaboolean
Verifica se a matriz é uma matriz diagonalboolean
Verifica se a matriz é uma matriz identidadeboolean
isNull()
Verifica se a matriz é uma matriz nulaprotected static <T extends Number>
booleanisRegular
(T[][] m) Método auxiliar para verificar se um array 2D é regularboolean
isSquare()
Verifica se a matriz é uma matriz quadradaboolean
Verifica 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 especificadovoid
Randomiza os dados da matrizvoid
randomize
(double bound) Randomiza os dados da matrizvoid
randomize
(double origin, double bound) Randomiza os dados da matrizvoid
Define o valor da posição (x, y) da matrizvoid
Define os dados da matrizvoid
setSeed
(long seed) Define uma seed fixa para obter resultados previsíveis na randomizaçãoint[]
size()
Retorna o tamanho da matriz como um array do tipoint
Subtrá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étodovoid
subtractAllInplace
(Matrices<T>[] arr) Subtrái todas as matrizes de um array deMatrices<T>
void
subtractInplace
(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 resultantevoid
sumAllInplace
(Matrices<T>[] arr) Soma todas as matrizes de um array deMatrices<T>
void
sumInplace
(Matrices<T> b) Soma duas matrizesMúltiplica duas matrizesvoid
Múltiplica uma matriz por um númerotoString()
Retorna os dados da matriz organizados de forma natural comoString
Retorna a matriz transpostavoid
Remove 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:
true
se o array for regular,false
caso contrário
-
convert
Converte um valor do tipoNumber
para 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:
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
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
-