Jump to content
ber0x88

Tratamento de dados

Recommended Posts

ber0x88

Boas,

Estou com uma duvida em relação ao tratamento de dados, vindos de um ficheiro de texto.

O ficheiro de texto contém em cada linha 5 informações a tratar divididos por ";", ou seja:

 

Int;string;char;double;int;

...

 

Qual será a melhor solução para depois ordenar os 3 com o maior valor na primeira variável do tipo int e escrever num ficheiro de texto de saída? Declarar 5 arrays cada um individual (int, string, char, double, int) e aceder ao index de cada um com uma variavel int? e como poderia depois analisar e guardar os 3 com maior valor?

 

Desde já,

Obrigado


"Impossível é apenas uma grande palavra usada por gente fraca que prefere viver no mundo como está em vez de usar o poder que tem para mudá-lo."

Share this post


Link to post
Share on other sites
iron

Sabes que só queres os 3. Logo enquanto não tiveres os 3 vais guardando. Depois de teres os 3, ordenas os 3. Lês o próximo e comparas com o que tens. Se for maior, apagas o que não interessa e guardas. 


Cumprimentos,
iron

Share this post


Link to post
Share on other sites
ber0x88

O que eu fiz foi inserir tudo em arrays e tendo uma variável int para controlar o index dos 5 arrays ao mesmo tempo.

 

Exemplo:

int numero = [24] ; string nome = [24] ; char posicao = [24] ; double pontos = [24] ; int pontos1 = [24];

for (int i = 0 ; i < line.length ; i++)
{
	System.out.println("Todas os arrays e o i a controlar os index");  
}

conta o numero de linhas em line.length e imprime o conteúdo de todos os arrays.

A melhor opção será em criar arrays temporários para inserir os de numero maior em "numero" e ir comparando?

É que depois de ter os 3 melhores tem que coincidir o index dos melhores em numero com o resto dos arrays para passar a informação completa para o ficheiro de saída.

Int;string;char;double;int;


"Impossível é apenas uma grande palavra usada por gente fraca que prefere viver no mundo como está em vez de usar o poder que tem para mudá-lo."

Share this post


Link to post
Share on other sites
iron

Porque não crias um objecto que contenha os 5 campos. E assim tens um array desse objecto.

class Aux
{
	public final int numero;
	public final String nome;
	public final char posição;
	public final double pontos;
	public final int pontos1;
	
	public Aux(int numero, ...)
	{
		...
	}
}

e depois na outra fazes:

LinkedList<Aux> values = new LinkedList<>()

não precisas de vários arrays. Usa um objecto que lá tenha tudo. E só usas um array ou lista ou o que quiseres.

Depois como vais gravando ou alterando ou ordenando, é um critério teu e o que achares mais fácil.

  • Vote 2

Cumprimentos,
iron

Share this post


Link to post
Share on other sites
ber0x88

Vou tentar assim. Obrigado ;)


"Impossível é apenas uma grande palavra usada por gente fraca que prefere viver no mundo como está em vez de usar o poder que tem para mudá-lo."

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.