Sou iniciante em Java e e tenho duvidas como criar Array Multidimensionais
, tenho a tabela abaixo:
Origem |
Destino |
M1 |
M2 |
M3 |
SP |
RJ |
R$ 250,00 |
R$ 300,00 |
R$ 350,00 |
SP |
VIT |
R$ 300,00 |
R$ 350,00 |
R$ 400,00 |
SP |
BH |
R$ 250,00 |
R$ 300,00 |
R$ 400,00 |
SP |
CUR |
R$ 250,00 |
R$ 300,00 |
R$ 400,00 |
BH |
RJ |
R$ 250,00 |
R$ 300,00 |
R$ 400,00 |
BH |
SP |
R$ 200,00 |
R$ 250,00 |
R$ 300,00 |
BH |
VIT |
R$ 300,00 |
R$ 350,00 |
R$ 400,00 |
BH |
CUR |
R$ 350,00 |
R$ 400,00 |
R$ 450,00 |
VIT |
RJ |
R$ 250,00 |
R$ 300,00 |
R$ 400,00 |
VIT |
SP |
R$ 350,00 |
R$ 400,00 |
R$ 450,00 |
VIT |
CUR |
R$ 450,00 |
R$ 500,00 |
R$ 550,00 |
Como faço para criar um Array Multidimensional
dessa tabela?
Uma tabela é, de fato, um array multidimensional (vulgo matriz) onde cada célula representa uma posição da matriz. Como você deve saber, as posições de uma matriz seguem a lógica cartesiana, onde cada posição é o encontro entre o ponto referente ao eixo horizontal (linha) e o vertical (coluna).
Como a tabela funciona da mesma maneira, não tem muito segredo não.
É mais estou com duvida como montar essa matriz em java…
Pensando em estruturar a aplicação, por que não criar um objeto e coloca cada coluna como um atributo? Assim, sua matriz multidimensional seria uma lista de objetos dessa classe. Algo como:
class Trajeto{
String origem;
String destino;
float M1;
float M2;
float M3;
}
//E a lista:
List<Trajeto> trajetos = new ArrayList<>();
A tabela acima é só uma forma de visualização. Não é necessariamente como você vai estruturar os dados dentro da aplicação.
Abraço.
Entendi, mas preciso encontrar, o maior valor da M1 pela Origem conforme o exemplo abaixo. Não sei com arraylist seria mais fácil do que um Array.
SP VIT R$ 300,00
BH CUR R$ 350,00
VIT CUR R$ 450,00
Você pode percorrer um List/ArrayList com for, da mesma forma que faria numa matriz. Também pode usar expressões lambda para fazer uma espécie de filtro no List, retornando somente os valores que te interessam.
Se sua classe (Trajeto, no meu exemplo) implementar a interface Comparable, você pode ordená-la pelos seus atributos. Com isso, usando Collections.sort, pode ordenar pelos atributos que precisar, o que facilita depois para obter o valor que você quer.
Por fim, se esses dados vem de um banco (MySQL, por exemplo), é razoável que você crie uma consulta que pegue o maior valor por uma determinada coluna, fazendo os agrupamentos necessários.
Obs: não está claro se você está muito familiarizado com a linguagem, mas eu suponho que sim. Por isso as sugestões acima. Mas nada impede de você usar uma matriz convencional.
Abraço.