1
resposta

Como colocar um array unidimensional, num array bidimensional?

/* Olá pessoal, estou fazendo um projetinho de uma agenda telefonica, onde armazeno cada contato num array, daí queria armazenar os contatos numa agenda, como um array de arrays, mas está dando erro!

*/ package agenda_telefonica; // Classe dados

public class Dados {

String nome;
String telefone;
String email;

public String getNome() {
    return this.nome;
}
public void setNome(String nome) {
    this.nome = nome;
}
public String getTelefone() {
    return this.telefone;
}
public void setTelefone(String telefone) {
    this.telefone = telefone;
}
public String getEmail() {
    return this.email;
}
public void setEmail(String email) {
    this.email = email;
}
public String[] novoContato() {
    String[] novoContato = {nome, telefone, email};
    return novoContato;
}
public String[] setNovoContato(String nome, String telefone, String email) {
    String[] novoContato = {nome, telefone, email};
    return novoContato;
}

}

// Classe contato

package agenda_telefonica;

public class Contato extends Dados{

String[] contato;

public String[] getContato() {
    return super.novoContato();
}
public void setContato(String nome, String telefone, String email) {
    String[] novoContato = {nome, telefone, email};
    this.contato = novoContato;
}

}

//Classe agenda

package agenda_telefonica;

public class Agenda extends Contato{

String[][] agenda;


public String[][] addContato(Object Contato) {
    agenda = super.novoContato();
    return agenda;
}

public String[][] verAgenda(){
    return this.agenda;
}

}

// Classe testes

package agenda_telefonica; import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner;

public class Testes {

public static void main(String[] args) {

    Scanner ler = new Scanner(System.in);
    Contato contato1 = new Contato();
    Contato contato2 = new Contato();
    Contato contato3 = new Contato();
    Agenda agenda1 = new Agenda();

    //Cadastrar novo Contato
    String nome;
    String telefone;
    String email;

    //Entrada de dados
    System.out.println("Nome: ");
    nome = ler.nextLine();
    contato1.setNome(nome);
    System.out.println("Telefone: ");
    telefone = ler.nextLine();
    contato1.setTelefone(telefone);
    System.out.println("E-mail");
    email = ler.nextLine();
    contato1.setEmail(email);
    //contato1.setContato(nome, telefone, email);

    //Contato 2
    System.out.println("Nome: ");
    nome = ler.nextLine();
    contato2.setNome(nome);
    System.out.println("Telefone: ");
    telefone = ler.nextLine();
    contato2.setTelefone(telefone);
    System.out.println("E-mail");
    email = ler.nextLine();
    contato2.setEmail(email);

    //Contato 3
    contato3.setNovoContato("margot", "098", "lkj");

    System.out.println(contato1.nome);
    System.out.println(contato1.telefone);
    System.out.println(contato1.email);
    System.out.println(Arrays.toString(contato1.getContato()));
    System.out.println(Arrays.toString(contato2.getContato()));
    System.out.println(Arrays.toString(contato3.getContato()));
    System.out.println();
    agenda1.addContato;
    //System.out.println(contato1.getContato()); nao funciona precisa do arrays to string.
    //agenda1.addContato();
    //System.out.println(Arrays.toString(agenda1.verAgenda()));
    System.out.println(Arrays.deepToString(agenda1.verAgenda()));




}

}

//Pelo que entendi o erro ta em colocar o array unidimensional num array agenda bidimencional. Como faço isso?

1 resposta

Olá! Tudo bem?

public class Agenda extends Contato {
    String[][] agenda; // (A)
    public String[][] addContato(Object Contato) {
        agenda = super.novoContato(); // (B) seu problema está aqui
        return agenda;
    }
    public String[][] verAgenda(){
        return this.agenda;
    }
}

Na linha (A) você espera um dado do tipo String[], mas na linha (B) você fornece um dado do tipo String[][]. Os tipos não batem :/

Agora, falando sobre a solução. Você conhece a classe java.util.HashMap ? Se não, sugiro dar uma olhadinha nela. Ela pode te dar a estrutura que você precisa pra organizar a sua agenda.