Sono sempre lolol ma non riesco ad entrare col vecchio account e ne ho fatto un altro.
Ho fatto due esercizi con gli arrayList. Trovate ci siano modi migliori per svolgerli? Avete consigli?
questo è il primo metto la consegna sotto
package vacanze_estive_15;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class Vacanze_estive_15 {
public static void main(String[] args) {
int g;
String gr;
boolean b;
String o = "Questo è il vettore originale:\n";
do {
gr = JOptionPane.showInputDialog("Inserisci la grandezza del vettore (minore di 20)");
g = Integer.parseInt(gr);
} while (g >= 20);
int v[] = new int[g];
ArrayList<Integer> l = new ArrayList<Integer>();
for (int i = 0; i < v.length; i++) {
gr = JOptionPane.showInputDialog("Inserisci il " + (i + 1) + "° numero del vettore");
v[i] = Integer.parseInt(gr);
o += v[i] + " ";
b = false;
if (v[i] != 0) {
for (int c = 0; c < i; c++) {
if (v[c] == v[i]) {
b = true;
}
}
} else {
b = true;
}
if (!b) {
l.add(v[i]);
}
}
JOptionPane.showMessageDialog(null, o + "\nMentre quello modificato è:\n" + l);
}
}
la consegna:
Scrivere un programma che legge N numeri interi da tastiera e li memorizza in un vettore. Il numero N viene inserito dall’utente ed è minore di 20. Il programma deve generare un secondo vettore che compatta i numeri contenuti nel primo vettore. In
particolare:
1) ogni numero che compare ripetuto nel primo vettore, deve comparire una sola volta nel secondo vettore
2) ogni numero uguale a zero presente nel primo vettore non deve comparire nel secondo vettore.
e questo è il secondo, la consegna sempredopo
package vacanze_estive_16;
import java.util.ArrayList;
import java.util.Random;
import javax.swing.JOptionPane;
public class Vacanze_estive_16 {
public static void main(String[] args) {
String input;
int g;
boolean b;
int c;
do {
input = JOptionPane.showInputDialog("Quanto vuoi sia grande il vettore? (inserisci "
+ "numero minore di 20)");
g = Integer.parseInt(input);
} while (g >= 20);
int v[] = new int[g];
Random caso = new Random();
ArrayList<Integer> a = new ArrayList<Integer>();
for (int i = 0; i < v.length; i++) {
v[i] = 1 + caso.nextInt(5);
System.out.print(v[i] + " ");
b = false;
for (int j = 0; j < i; j++) {
if (v[i] == v[j]) {
b = true;
}
}
if (!b) {
a.add(v[i]);
}
}
for (int i = 0; i < a.size(); i++) {
c = 0;
for (int j = 0; j < v.length; j++) {
if (v[j] == a.get(i)) {
c++;
}
}
System.out.println("\nIl numero " + a.get(i) + " viene ripetuto " + c + " volte.");
}
}
}
Esercizio 16
Scrivere un programma che legge N numeri interi da tastiera e li memorizza in un vettore. Il numero N viene inserito dall’utente ed è minore di 20. Il programma deve visualizzare, per ogni cifra contenuta nel vettore, il numero di occorrenze. Ad esempio, si supponga N=7 e si consideri la sequenza di numeri 1 6 15 6 2 15 15. Il programma deve visualizzare:
numero 1 occorrenze 1
numero 6 occorrenze 2
numero 15 occorrenze 3
numero 2 occorrenze 1