Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    errore lettura arraylist

    Salve ho un problema con la gestione di un arraylist.
    Ciò che vorrei realizzare è un metodo che mi generi un arraylist di array double[] leggendo i valori da un file .txt.
    Per meglio capirci vi scrivo il codice:
    m è il numero di righe nel file, n il numero di elementi per ogni riga.
    Il problema è che se provo a leggere gli array in questo metodo (codice in rosso) ho i valori reali, ma se invoco il metodo e poi leggo un array, qualsiasi posizioni indichi mi da sempre lo stesso risultato.

    codice:
    q=crea_vettori(m,n,graphFile);
          double a[]=q.get(0);
        	 System.out.println("array");
        	 for(int ii =0;ii<a.length;ii++){
        		
        		 System.out.println(a[ii]);
             }
    
    
    private static ArrayList<double[]> crea_vettori(int m,int n,BufferedReader graphFile){
    		 
    	    	ArrayList<double[]> q = new ArrayList<double[]>();
    	    	double x[];
    	        String line1;
    	        try
    	        {
    	                       x=new double[n];
    	          	          int j=0;
    	       	   
    	          while( ( line1 = graphFile.readLine( ) ) != null )
    	            {
    	              StringTokenizer st = new StringTokenizer( line1 );
    	                   try
    	                {
    	                	 int i=0;
    	                while(i<n){
    	                		 int t=Integer.parseInt(st.nextToken());
    	                		
    	     	            	x[i]=t;
    	     	                      	               	 
    	                	i++;}
    	                q.add(j,x);
    double a[]=q.get(j);
                   	 System.out.println("array");
                   	 for(int ii =0;ii<a.length;ii++){
                   		
                   		 System.out.println(a[ii]);
    	                }                	 	                j++;
    	                }
    	               
    	                catch( NumberFormatException e )
    	                  { System.err.println( "Skipping ill-formatted line " + line1 ); }
    	             }
    	         
    	         }
    	         catch( IOException e )
    	           { System.err.println( e ); }
    	      
    	        
    	        return q;
    	    }
    Per cortesia aiutatemi pperchè non riesco più a rendermi conto dell'errore.
    Ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613

    Re: errore lettura arraylist

    Originariamente inviato da poco esperto
    Salve ho un problema con la gestione di un arraylist.
    Ciò che vorrei realizzare è un metodo che mi generi un arraylist di array double[] leggendo i valori da un file .txt.
    Per meglio capirci vi scrivo il codice:
    m è il numero di righe nel file, n il numero di elementi per ogni riga.
    Il problema è che se provo a leggere gli array in questo metodo (codice in rosso) ho i valori reali, ma se invoco il metodo e poi leggo un array, qualsiasi posizioni indichi mi da sempre lo stesso risultato.

    q=crea_vettori(m,n,graphFile);
    double a[]=q.get(0);
    System.out.println("array");
    for(int ii =0;ii<a.length;ii++){

    System.out.println(a[ii]);
    }


    private static ArrayList<double[]> crea_vettori(int m,int n,BufferedReader graphFile){

    ArrayList<double[]> q = new ArrayList<double[]>();
    double x[];
    String line1;
    try
    {
    x=new double[n];
    int j=0;

    while( ( line1 = graphFile.readLine( ) ) != null )
    {
    StringTokenizer st = new StringTokenizer( line1 );
    try
    {
    int i=0;
    while(i<n){
    int t=Integer.parseInt(st.nextToken());

    x[i]=t;

    i++;}
    q.add(j,x);
    double a[]=q.get(j);
    System.out.println("array");
    for(int ii =0;ii<a.length;ii++){

    System.out.println(a[ii]);
    }
    j++;
    }

    catch( NumberFormatException e )
    { System.err.println( "Skipping ill-formatted line " + line1 ); }
    }

    }
    catch( IOException e )
    { System.err.println( e ); }


    return q;
    }
    Per cortesia aiutatemi pperchè non riesco più a rendermi conto dell'errore.
    Ciao
    Metti il codice fra tag [CODE].

    Non ho capito come stai agendo, se hai un file di testo contenente numeri in virgola mobile, e devi leggerli, perché hai una lista di array di numeri e non una lista di numeri e basta? Devi generare una qualche forma di matrice?

  3. #3
    Non è una scelta implementativa; ho un file di testo con righe del tipo
    codice:
    1 2 3 4
    5 8 3 4
    e per ognuna di essa devo creare un array contenente i singoli numeri.
    Infatti penso, o meglio, ho provato che il mio metodo fa questo almeno in parte.

  4. #4

    RISOLTO

    Ho risolto con il seguente codice:
    codice:
     private static ArrayList<ArrayList> crea_vettori(int n,BufferedReader br){
    		 
     String line = ""; 
     ArrayList<ArrayList> tutto = new ArrayList<ArrayList>();
      int j=0;
      try{
       while((line = br.readLine()) != null) { 
    		  ArrayList data = new ArrayList();
    			  
    		  StringTokenizer st = new StringTokenizer( line);
    		   int i=0;
    		      while(i<n){
    			 int t=Integer.parseInt(st.nextToken());
    		              data.add(t);
    		              i++;
    		                    } 
    		       tutto.add(j,data);
    		       j++;
    			 } 
    			  }catch(IOException e){
    			  System.out.println(e);
    			  }
    			  return tutto; 
    				 }
    Spero possa essere utile a qualcuno

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.