Ciao a tutti, ho un problema con un esercizio, ecco il testo:
La classe Compito contiene un metodo pubblico di classe che riceve in ingresso una matrice quadrata m.
Tale metodo individua la colonna della matrice m che contiene più numeri pari e restituisce una LinkedList che contiene tutti i numeri pari della colonna in questione.
- Si scriva la classe Compito ed il suo metodo colonnaMaxPari.
- Si scriva la classe ProvaCompito contenente il solo metodo main, il quale svolge le seguenti operazioni:
o Crea una matrice quadrata di interi m. Sia la dimensione di m sia i valori da inserire in m sono decise dall’utente.
o Usando la classe Compito individua la colonna con più numeri pari e visualizza questi all’utente.
Ho scritto una interfaccia e poi la classe, ecco i codici:
codice:public interface List { /* ritorna il numero di elementi nella lista*/ public int size (); /* aggiunge l'oggetto obj in testa alla lista */ public void addToHead (Object obj); }Il problema è il metodo colonnaMaxPari(qui è incompleto). L'idea è copiare tutti i numeri pari delle varie colonna in più array, effettuare un confronto tra la lunghezza degli array e prendere quello più lungo. Poi convertire i valori in Object, tramite la classe Integer. La prima parte del metodo credo vada bene. Ora, la mia domanda è: come sono referenziati i vari array?non riesco a confrontarli!!codice:class Compito implements List { private Entry head; private int size; private static class Entry { Object element; //elemento rappresentato Entry next; //successore /* crea un oggetto entry, dato l’elemento e il successore */ Entry(Object element, Entry next) { this.element = element; this.next = next; } } public Compito() { this.head=null; this.size=0; } /* ritorna il numero di elementi nella lista*/ public int size() { return this.size; } /* aggiunge l'oggetto obj in testa alla lista */ public void addToHead(Object obj) { Entry e = new Entry(obj,this.head); this.head=e; this.size++; } /* metodo che individua la colonna della matrice m che contiene più numeri pari e restituisce una LinkedList che contiene tutti i numeri pari della colonna in questione.*/ public Compito colonnaMaxPari(int[][] mat) { Compito result = new Compito(); int[] temp = new int[mat.length]; int maxPari=0; for(int j=0;j<mat.length;j++) { int count=0; // variabile contatore: tiene conto dei numeri pari di ogni colonna for(int i=0;i<mat.length;i++) { if(mat[i][j]%2==0) temp[i]=mat[i][j]; count++; } } } }