Creare array in java

di il
6 risposte

Creare array in java

Salve a tutti,
mi sono appena iscritto e ne approfitto per salutarvi.
Ho da poco iniziato ad utilizzare java e sono un novello. Il mio dubbio è il seguente: come faccio a creare un array senza sapere a priori la dimensione che deve possedere? Ho un esercizio in cui l'utente deve deve immettere una sequenza di numeri e poi mi si chiede di memorizzare la sequenza in una struttura di tipo array.
io ho buttato giù questo programmino ma (ovviamente ) non mi funziona.

public class Esercizio {

ArrayList <Double> array;

public Esercizio() {

array = new ArrayList<>();
}

public ArrayList<Double> getList() {
return array;
}

public static void stampaLista(ArrayList<Double> array) {
for(int i=0; i<array.size(); i++) {
System.out.println(array.get(i));
}
}
public void leggiStringhe() {

Scanner letturaNumeri = new Scanner(new InputStreamReader(System.in));

Double line = null;


while(1 != 0) {
System.out.print("Inserire stringa: ");

letturaNumeri.nextLine();
if(line.equals("")) break;

array.add(line);
}

letturaNumeri.close();
}

public static void main(String[] args) {
punto nuovo = new Esercizio();

nuovo.leggiStringhe();
System.out.println("Lista numeri: ");
punto.stampaLista(nuovo.getList());

}

}

grazie a chiunque vorrà aiutarmi

6 Risposte

  • Re: Creare array in java

    mikspar ha scritto:


    come faccio a creare un array senza sapere a priori la dimensione che deve possedere?
    Se intendi "array" come inteso dal linguaggio Java (cioè non collection o altro), la dimensione la devi specificare. Non è possibile fare altrimenti. (per gli array multi-dimensionali puoi omettere le dimensioni più interne es. new int[10][][] ma la prima dimensione la devi comunque specificare).

    mikspar ha scritto:


    Ho un esercizio in cui l'utente deve deve immettere una sequenza di numeri e poi mi si chiede di memorizzare la sequenza in una struttura di tipo array.
    io ho buttato giù questo programmino ma (ovviamente ) non mi funziona.
    Non ti "funziona" perché come hai gestito l'input non è corretto né ha senso. Non è una questione di "array".

    Invochi nextLine() ma il valore che restituisce non lo usi! E nextLine() restituisce un String .... non un Double come la variabile 'line' (a cui forse volevi assegnare).
  • Re: Creare array in java

    Ciao grazie andbin per la celerità della risposta.
    Ho usato nextLine() perchè l'utente deve poter inserire tutti i numeri che vuole e poi pigiando solo l'invio il programma deve concludere l'acquisizione di numeri.
    Sicuramente ho sbagliato ad attribuire alla variabile line il tipo Double (quindi dovrei attribuirgli il tipo String? ma non mi gira ugualmente...Confused).
    avevo studiato anch'io che un array DEVE specificare una dimensione ma allora non capisco perchè l'esercizio mi chieda di memorizzare la sequenza di numeri in una struttura di tipo array (non so quanti numeri l'utente immetterà).
    Non capisco come risolvere...
  • Re: Creare array in java

    mikspar ha scritto:


    Ho usato nextLine() perchè l'utente deve poter inserire tutti i numeri che vuole e poi pigiando solo l'invio il programma deve concludere l'acquisizione di numeri.
    Se vuoi che si debba per forza inserire 1 sola linea con tutti i numeri (separati da spazi), sì è possibile.
    Ma tu da nextLine() ottieni una stringa del tipo es. "123.6 456 789" e spetta a te "spezzare" tale stringa, ottenere i singoli token String "123.6", "456" e "789" e convertirli in valori numerici (Double).
  • Re: Creare array in java

    No non era quello lo scopo che volevo far fare al mio programma.
    io volevo che l'utente scrivesse i numeri su più stringhe in questo modo:

    inserire numero: 254
    inserire numero: 16
    .......
    ......

    Quando l'utente non vuole piu' inserire numeri dovrà solamente pigiare invio senza scrivere nulla. ( avevo usato questo metodo if(line.equals("")) break;

    Se non ti disturba mi faresti un esempio di risoluzione?
    Grazie mille andbin
  • Re: Creare array in java

    mikspar ha scritto:


    io volevo che l'utente scrivesse i numeri su più stringhe in questo modo:

    inserire numero: 254
    inserire numero: 16
    .......
    ......
    E allora il ciclo while va bene ma se usi nextLine() hai un String, che devi convertire tu in Double. Vedi valueOf di Double. Tutto lì.
  • Re: Creare array in java

    Grazie mille andbin...
Devi accedere o registrarti per scrivere nel forum
6 risposte