![](/img/trans.png)
[英]How to I store an object in an arraylist from one class in another class
[英]store object in ArrayList using another class
這是第一個代碼:
public class Person {
private int age;
private String name;
public Person(String name,int age){
this.age = age;
this.name = name;
}
public void setName(String name){
this.name = name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
public String getName(){
return name;
}
public String toString(){
return name+","+age;
}
}
然后這是主要類,它將顯示輸出:
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class PersonDatabase {
public static void main(String[] args) {
ArrayList<Person> list= new ArrayList<>();
Person p = new Person("",0);
int choice =0;
String listing ="";
do{
choice=Integer.parseInt(JOptionPane.showInputDialog(null,"\nChoices:"+"\n[1]Add"+"\n[2]Edit"+"\n[3]Delete"+"\n[4]Search"+"\n[5]View"+"\n[6]Sort"+"\n[7]Exit"+"\nEnter Choice:"));
switch(choice){
case 1:
String name = JOptionPane.showInputDialog(null,"Enter Name:");
int age = Integer.parseInt(JOptionPane.showInputDialog(null,"Enter Age:"));
list.add(new Person(name,age));
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
if(!list.isEmpty()){
for(int i=0;i<list.size();i++){
listing+=list.toString();
JOptionPane.showMessageDialog(null,listing);
}
}else{
JOptionPane.showMessageDialog(null,"ERROR","", JOptionPane.WARNING_MESSAGE);
}
break;
case 6:
break;
case 7:
break;
}
}while(choice!=7);
}
}
我很抱歉,如果我不清楚我的問題,但我想使用ArrayList,其中我將ArrayList存儲在Person類中,我想使用public String toString查看它,所以它將顯示名稱和年齡
使用list.get(index)
方法從列表中獲取Person
對象,然后連接。
我想,一旦你得到了所有人的信息,那么你想要表現出來。 所以取出JOptionPane.showMessageDialog(null,listing);
來自for循環。 否則就像你現在一樣把它放在循環中。
for(int i=0;i<list.size();i++){
listing += list.get(i).toString() + "\n"; // get the i Person instance from list and call toString()
}
JOptionPane.showMessageDialog(null,listing);
您正在使用+
運算符執行String
連接。 您還可以使用StringBuilder
類從列表中追加所有Person信息。
看起來問題與您的案例5:代碼有關。
嘗試
case 5:
if(!list.isEmpty()){
for(int i=0;i<list.size();i++){
listing+=list.get(i).toString();
JOptionPane.showMessageDialog(null,listing);
}
}else{
JOptionPane.showMessageDialog(null,"ERROR","",
JOptionPane.WARNING_MESSAGE);
}
break;
注意list.get(i).toString( )而不是list.toString()
您的代碼似乎正在ArrayList中正確插入Person類。 所以,如果你需要使用toString()來查看ArrayList的內容,你需要的只是覆蓋Person類中的方法toString() 。 因此,當您打印ArrayList時,它只會為每個ArrayList元素調用toString()方法。
public static void main(String[] args) {
ArrayList<Person> list= new ArrayList<>();
int choice =0;
do{
choice=Integer.parseInt(JOptionPane.showInputDialog(null,"\nChoices:"+"\n[1]Add"+"\n[2]Edit"+"\n[3]Delete"+"\n[4]Search"+"\n[5]View"+"\n[6]Sort"+"\n[7]Exit"+"\nEnter Choice:"));
switch(choice){
case 1:
String name = JOptionPane.showInputDialog(null,"Enter Name:");
int age = Integer.parseInt(JOptionPane.showInputDialog(null,"Enter Age:"));
list.add(new Person(name,age));
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
if(!list.isEmpty()){
foreach(Person p : list){
StringBuilder message = new StringBuilder();
message.append(p.toString());
message.append("\n");
JOptionPane.showMessageDialog(null,message.toString());
}
}else{
JOptionPane.showMessageDialog(null,"ERROR","", JOptionPane.WARNING_MESSAGE);
}
break;
case 6:
break;
case 7:
break;
}
}while(choice!=7);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.