lucas_carvalho100 10 de jan. de 2011
PedroGuerra 10 de jan. de 2011
bom dia raphael01,
para melhor visualização do seu código favor posta-lo entre as tags “[ code ] [ /code ]” (sem espaço e aspas).
Assim:
package ordenaLista ;
import java.io.BufferedReader ;
import java.io.File ;
import java.io.FileReader ;
import java.util.ArrayList ;
import java.util.Collections ;
import java.util.List ;
public class OrderarLista implements Comparable {
private String name = "" ;
/**
* @param args
*/
public static void main ( String [] args ) {
try {
File file = new File ( "C:/PH/Teste/workspace/nomes.txt" );
FileReader reader = new FileReader ( file );
BufferedReader br = new BufferedReader ( reader );
List lista = new ArrayList < String > ();
while ( br . ready ()){
String linha = br . readLine ();
lista . add ( br . readLine ());
System . out . println ( "lista: " + lista );
}
Collections . sort ( lista );
for ( int i = 0 ; i < lista . size (); i ++ ){
System . out . println ( "Lista: " + lista . get ( i ));
}
} catch ( Exception e ) {
e . printStackTrace ();
}
}
public int compareTo ( Object o ) {
String obj = ( String ) o ;
return name . compareTo ( name );
}
public String getName () {
return name ;
}
public void setName ( String name ) {
this . name = name ;
}
}
PedroGuerra 10 de jan. de 2011
Fiz alguns ajustes.
package ordenaLista ;
import java.io.BufferedReader ;
import java.io.File ;
import java.io.FileReader ;
import java.util.ArrayList ;
import java.util.Collections ;
import java.util.List ;
public class OrderarLista implements Comparable {
private String name = "" ;
/**
* @param args
*/
public static void main ( String [] args ) {
try {
File file = new File ( "C:/PH/Teste/workspace/nomes.txt" );
FileReader reader = new FileReader ( file );
BufferedReader br = new BufferedReader ( reader );
List lista = new ArrayList < String > ();
while ( br . ready ()){
String linha = br . readLine ();
lista . add ( linha );
System . out . println ( "lista: " + lista );
}
Collections . sort ( lista );
for ( int i = 0 ; i < lista . size (); i ++ ){
System . out . println ( "Lista: " + lista . get ( i ));
}
} catch ( Exception e ) {
e . printStackTrace ();
}
}
public int compareTo ( Object o ) {
String obj = ( String ) o ;
return name . compareTo ( name );
}
public String getName () {
return name ;
}
public void setName ( String name ) {
this . name = name ;
}
}
raphael01 10 de jan. de 2011
Ok PEdro.
Segue o erro
java . lang . NullPointerException
at java . lang . String . compareTo ( Unknown Source )
at java . lang . String . compareTo ( Unknown Source )
at java . util . Arrays . mergeSort ( Unknown Source )
at java . util . Arrays . mergeSort ( Unknown Source )
at java . util . Arrays . mergeSort ( Unknown Source )
at java . util . Arrays . sort ( Unknown Source )
at java . util . Collections . sort ( Unknown Source )
at ordenaLista . OrderarLista . main ( OrderarLista . java : 29 )
lucas_carvalho100 10 de jan. de 2011
Isso ai quer dizer que a sua lista esta vazia, você tem certeza que ela esta sendo preenchida?
felipedamiani 10 de jan. de 2011
Segue exemplo:
class Ordena implements Comparator < String > {
@ Override
public int compare ( String o1 , String o2 ) {
return o1 . compareTo ( o2 );
}
}
Collections . sort ( list , new Ordena ());
PedroGuerra 10 de jan. de 2011
Esse erro deu com o ajuste que eu fiz já?
raphael01 10 de jan. de 2011
Consegui resolver galera.
Fui ver se a lista estava vazia seguindo o conselo do lucas e o erro estava no código abaixo:
while ( br . ready ()){
String linha = br . readLine ();
lista . add ( br . readLine ());
System . out . println ( "lista: " + lista );
}
Em 2 momentos eu usei o “br.readLine();”, assim era incrementado na lista de 2 em dois e quando chegava no ultimo registro, ele pulava e dava Null.
Retirei a linha “String linha = br.readLine();” e funcionou.
Obrigado.
PedroGuerra 10 de jan. de 2011
então edita seu topico e coloque a tag [RESOLVIDO] nele para melhor organização do forum.
obrigado