Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2017
    Messaggi
    3

    Problema con Arrays Java

    Ciao a tutti, devo creare un programma che:
    dati due Array a1 e a2 mi dica quanti numeri vengono ripetuti.
    Ad esempio se a1[1,3,5,6,8] e a2[3,2,5,8,9] allora il risultato è 3 poichè 3,5 e 8 vengono ripetuti.

    Io l'ho impostato così
    ____________________
    public class Inters{
    public boolean uguali(int[] a1, int[] a2) //boolean che verifica se due numeri sono uguali
    {
    for(int i=0; i<a1.length; i++)
    {
    for(int j=0; j<a2.length; j++)
    {
    if(a1[i] == a2[j])
    return true;
    }


    }
    return false;
    }

    public static int Inters(int[] a1, int [] a2) //metodo che aumenta la quantità di numeri uguali
    {
    int nEl = 0; //numero elementi uguali
    if(uguali())
    {
    nEl ++;
    }
    else
    return;
    }
    }
    ________________
    Però non funziona, come posso risolvere?

  2. #2
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,025
    Ciao, prova così, poi farai i tuoi metodi:
    public static void main(String[] args) {
    int[] a1 = { 1, 3, 5, 6, 8 };
    int[] a2 = { 3, 2, 5, 8, 9 };
    int conta = 0;
    for (int i = 0; i < a1.length; i++) {
    for (int j = 0; j < a2.length; j++) {
    if (a1[i] == a2[j])
    conta += 1;
    }
    }
    System.out.println("valori uguali n. " + conta);
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2017
    Messaggi
    3
    Grazie mille della tempestiva risposta, ma io dovrei fare una classe chiamata appunto Inters e poi un tester, cioè IntersTester, nel quale l'utente attraverso il metodo Scanner inserisce i due Array i quali vengono confrontati dal metodo inters, il problema è che non riesco a far funzionare che:

    if(uguali()) //se a1 e a2 hanno elementi ripetuti
    allora il numero degli elementi ripetuti aumenta di 1

    altrimenti continua il ciclo.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2017
    Messaggi
    3
    Ora ho messo così:
    If(Inters.uguali(a1, a2))
    nEl++
    else
    ...

    però la JVM mi dice
    error: method uguali in class Inters cannot be applied to given types; if(Inters.uguali(a1,a2))
    ^
    required: int[],int[]
    found: no arguments
    reason: actual and formal argument lists differ in length

    perchè?

  5. #5
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,025
    Qui sotto ho creato una soluzione completa, anche se è un po differente dalla tua, dovrebbe funzionare a dovere:
    public class Main {

    public static void main(String[] args) {
    int[] a1 = { 1, 3, 5, 6, 8};
    int[] a2 = { 3, 2, 5, 8, 9};
    int conta = 0;
    for (int i = 0; i < a1.length; i++) {
    for (int j = 0; j < a2.length; j++) {
    if (a1[i] == a2[j])
    conta += 1;
    }
    }
    System.out.println("valori uguali n. " + conta);


    Inters verificaInteri = new Inters(a1, a2);
    boolean verifica = false;
    int contaInteri = 0;

    verifica = verificaInteri.uguali(a1, a2);
    contaInteri = verificaInteri.contaInteri();

    System.out.println("Ci sono più di uno " + verifica);
    System.out.println("Ce ne sono " + contaInteri);
    }

    }
    Sotto la classe Inters
    class Inters {

    int[] a1 = null;
    int[] a2 = null;
    static int contaOccorenze = 0;

    public Inters(int[] a1, int[] a2) {
    super();
    this.a1 = a1;
    this.a2 = a2;
    }

    public Inters() {
    super();
    }


    // boolean che verifica se
    // due numeri sono uguali
    public static boolean uguali(int[] a1, int[] a2)
    {
    for (int i = 0; i < a1.length; i++) {
    for (int j = 0; j < a2.length; j++) {
    if (a1[i] == a2[j])
    contaOccorenze += 1;
    }
    }
    if (contaOccorenze > 0)
    return true;
    else
    return false;
    }

    // restituisce il numero di volte che trova un doppione
    public static int contaInteri() {
    return contaOccorenze;
    }
    }
    Ultima modifica di Ironmax; 08-08-2017 a 15:41

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Dovresti usare il tag CODE altrimenti il codice è illeggibile...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.