User Tools

Site Tools


pub:labprog:20171120

ArrayList (varie)

// da "fuori" (portatili) atrent.it:993
// da "dentro" (pc aula) 172.22.83.53:6523
 
// 34.67676
 
// java.di.unimi.it  DOCUMENTAZIONE JAVA
 
/**
 
	Creare un ArrayList di stringhe a partire dallo stdin:
 
	- usare Scanner
	//perchè scanner va sempre aggiunta se è così utile? e non è incluso in java.lang [R: ask the developers]
 
	- creare un ArrayList tipizzato
 
	- fare ciclo per riempirlo
 
 
	COMPLICAZIONI:
		- se incontra un double, stamparlo senza inserirlo
 
 
		- a valle del riempimento, creare secondo array e riempirlo con tutti i token del primo array più corti di un numero arbitrario (opzionalmente come spostamento)
 
 
*/
 
import java.util.*;
 
public class ArrayVarie{
	public static void main(String[] arg)
	throws Exception {
 
		ArrayList<String> s1 = new ArrayList<String>();
		ArrayList<String> s2 = new ArrayList<String>();
 
		Scanner scanner = new Scanner(System.in);
		int k;
 
		//System.out.println(System.in.markSupported());
		//System.in.mark(50); // fin dall'inizio
 
		String stringa;
		//int k=0;
 
		while(scanner.hasNext()) // c'è almeno un token nello stream
		{
				//Non si è mai detto di terminare il ciclo
			   //i cicli infiniti non sono da evitare?
			   //R: si, poi immagino che trentini ci dirà che condizione mettere
 
			//stringa = scanner.next();
 
	//System.out.println("inserisci....");
 
			if(scanner.hasNextDouble()){
				System.out.print("========================>>>>>>>  DOUBLE: ");
				System.out.println(scanner.nextDouble());
				}
			else
				s1.add(scanner.next());
 
 
			/*
			if(in.hasNextDouble(){
				System.out.print(in.nextDouble);
				in.nextLine();
				continue;
			}
			s.add(in.next());
			k++; 
			*/
			//l'eccezione non viene sollevata prima del controllo di hasNextLine? riga 36
			// R: ni, dipende dalla sequenza dei dati che sto leggendo
 
			//k++; //a che serve k? R: per ora a nulla, probabilmente poi a qualcosa.
 
			//System.in.reset();
 
		}		
 
		// versione tradizionale
		for(k=0;k<s1.size();k++){
			if(s1.get(k).length()>=5)
				s2.add(s1.get(k)); // copia
		} 
 
 
		// versione con for-each
		for(String x:s1){
			if(x.length()>=5)
				s2.add(x);
		}
 
 
		System.out.println(s1);
		System.out.println(s1.size());
		System.out.println(s2);
		System.out.println(s2.size());
	}
}
/**
 
	- creare un ArrayList di double a partire dallo stdin:
	- scrivere pezzo di codice che calcola media, min e max dei valori inseriti
 
*/
 
 
import java.util.*;
 
public class ExcelDeiPoveri{
	public static void main(String[] arg)
	throws Exception {
 
		// ArrayList<double> cella = new ArrayList<double>(); // Non compila perché deve essere tipo non primitivo
 
		ArrayList<Double> celle = new ArrayList<Double>();
 
		Scanner scanner = new Scanner(System.in);
		double somma=0,media=0,min=Double.MAX_VALUE,max=Double.MIN_VALUE;
		//double somma=0,media=0,min,max;
 
		while(scanner.hasNextDouble()) 
		{
			celle.add(scanner.nextDouble());
		}		
		System.out.println(celle);
 
		for(int i=0;i<celle.size();i++)
			somma += celle.get(i);
 
		media=somma/celle.size();
 
		for(int i=0;i<celle.size();i++){
		//for(int i=0;i<(celle.size()-1);i++){
 
			//for(int j=i;j<d.size();j++)
				//min= ((celle.get(i) < (celle.get(i+1))) ? celle.get(i): celle.get(i+1));
				//max =((celle.get(i) > (celle.get(i+1))) ? celle.get(i): celle.get(i+1));
 
 
				if(celle.get(i)<min) min=celle.get(i);
				if(celle.get(i)>max) max=celle.get(i);
		}
 
 
		System.out.println(min);
		System.out.println(max);
	}
 
}
34.7
6767.9
2323
9898.7
1212.4
+
 
pub/labprog/20171120.txt · Last modified: 2017/11/20 16:45 by atrent