Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pub:labprog:20171120 [2017/11/20 16:45] (current)
atrent created
Line 1: Line 1:
 +====== ArrayList (varie) ======
 +
 +
 +<code java>
 +// 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());​
 + }
 +}
 +
 +</​code>​
 +
 +<code java>
 +/**
 +
 + - 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);​
 + }
 +
 +}
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +</​code>​
 +
 +
 +<​code>​
 +34.7
 +6767.9
 +2323
 +9898.7
 +1212.4
 ++
 +</​code>​
 +
 +
 +<code java>
 +</​code>​
  
pub/labprog/20171120.txt · Last modified: 2017/11/20 16:45 by atrent
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0