2016-04-03 2 views
0

Так что я недавно начал изучать Java и в настоящее время изучает список массивов.Добавление данных различного типа и из разных классов в Arraylist

Предположим, что у меня есть два класса A и B. В классе A у меня есть два атрибута, которые являются строковыми типами 'name' и int type 'age'.

В классе B у меня есть список массивов, и я хочу добавить значение имени и возраста в список массивов.

Как я могу это сделать, а также как я могу добавить разные типы данных в один список массивов? Ниже приведен код в двух классах, которые я написал, но компилятор дает ошибку.

public class A { 

    public String name; 
    public int age; 

    public input() 
    { 
     name = "ALI"; 
     age = 20; 
    } 

} 

public class B{ 

    A obj = new A(); 
    ArrayList aa = new ArrayList(); //error here 

    aa.add(obj.name); //error here 

} 
+1

ваш пример кода не является компилятором ... пожалуйста, исправьте это –

+0

Вы хотите добавить в список 'String' и' A' типы? – Andrew

+0

я не понимаю. Что вы хотите, чтобы я сделал с кодом? – Yousaf

ответ

0

Ваш фрагмент кода не очень ясно. Я предполагаю, что вы пытаетесь это сделать.

ClassB

import java.util.ArrayList; 

    class ClassB { 

     public String name; 
     public int age; 

     public ClassB() { 
      name = "ALI"; 
      age = 53; 
     } 

    } 

ClassA

public class ClassA { 

    public static void main(String[] args) { 

     ClassB obj = new ClassB(); 
     ArrayList aa = new ArrayList(); 

     aa.add(obj.age); // int 
     aa.add(obj.name); // string 

     aa.add(15.2); // float 
    } 

} 

Если вы заметили, что поплавок также добавляется в ArrayList. Как вы хотите добавить другой тип данных.До тех пор, пока вы не указали какой-либо конкретный общий тип данных для любого класса коллекции. Вы можете добавить любой тип данных.

0

Вы должны создать объект класса А, а затем добавить его в список, определенный в классе B, это делается с помощью значения поля или даже лучше, используя добытчиками

Пример:

public class Tester { 
    public String name; 
    public int age; 

    public Tester() 
    { 
     name = "ALI"; 
     age = 20; 
    } 
    public static void main(String[] args) { 
     List<String> myList = new ArrayList<String>(); 
     Tester t = new Tester(); 
     myList.add("Name: "+t.name+"; Age: "+t.age); 
     System.out.println(myList); 

    } 
} 

класс тестер такой же, как класса а и сниппета в основной метод может быть перемещен в другое класс В

+0

Я пробовал это, но он генерирует ошибку, что список массивов не принимает параметры. – Yousaf

0

Во-первых, вы должны инициализировать объект класса А.

A obj=new A(); 

Затем можно присвоить значения для объекта А типа с помощью вызова метода ввода().

obj.input(); 

Тогда вы должны дать тип элементов в ArrayList в B.Since вы хотите поместить строки в аа ArrayList, тип должен быть определен как ArrayList <String>.

ArrayList<String> aa = new ArrayList<String>(); //error here 
aa.add(obj.name); 

Примечание: Если вы хотите добавить различные типы объектов в одном ArrayList, вам придется изучить понятие полиморфизма, так как вы новичок в Java. Самый простой, но не рекомендуемый способ - использовать ArrayList типа Объект, который является родительским классом всех классов Java.

ArrayList<Object> list=new ArrayList<Object>(); 

Теперь вы можете добавить что-нибудь в этот список.

String a="example"; 
list.add(a); 
int b=10; 
list.add(b); 

и так далее ....

+0

ArrayList aa = new ArrayList <>(); эта строка генерирует ошибку, что список массивов не принимает параметры – Yousaf

+0

попробуйте сейчас. Я отредактировал ответ. –

+0

По-прежнему такая же ошибка. – Yousaf

Смежные вопросы