创建对象数组的ArrayList

时间:2014-03-17 20:56:47

标签: java arrays swing file-io arraylist

这是我第一次同时使用ArrayList和Arrays,我正在编写从西班牙语到英语的字典,它就像一个游戏,因为用户可以创建他/她自己的研究列表,(s)他选择了他想要添加到研究列表中的单词,他可以创建任意数量的列表。

我正在寻找的是

1)当我将WordsData的对象创建到另一个类中时如何将新对象与数组一起添加到ArrayList中,我需要添加偶数boolean,因为如果为true,那么这个词将被展示在游戏中,否则它将赢得

2)用户是否可以选择文件名?我的意思是代替没有" StudyList.txt"用户可以说" myFirstStudyList.txt"或" lalala.txt"怎么可能这样做,我试着用:

String fileName = "lalala";
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(fileName ".txt"));

但它没有编译。

这是我班级的一个例子,它更大但这可以帮助:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

class WordsData implements java.io.Serializable{
String meaning[];
String words[];
boolean add[];
int type;

WordsData(){
    meaning = new String[10];
    words = new String[10];
    add = new boolean[10];
    type = 0;
}
int get_type(){
    return type;
}
void set_type(int t){
    this.type = t;
}
String []get_meaning(){
    meaning = new String[]{
        "One",
        "Two",
        "Three",
        "Four",
        "Five",
        "Six",
        "Seven",
        "Eight",
        "Nine",
        "Ten",
    };
    return meaning;
}
String []get_words(){
    words = new String[]{
        "Uno",
        "Dos",
        "Tres",
        "Cuatro",
        "Cinco",
        "Seis",
        "Siete",
        "Ocho",
        "Nueve",
        "Diez"
    }
    return words;
}
boolean []get_add(){
    add = new boolean[]{
        true,
        true,
        true,
        true,
        true,
        true,
        true,
        true,
        true,
        true
    };
    return add;
}
}

这是我尝试过的,但它不起作用,或者至少我不知道该怎么做:

WordsData aux = new WordsData();
for(int j = 0; j < 10; j++){
    aux.set_meaning((String)table.getValueAt(j,1), j);
    aux.set_words((String)table.getValueAt(j,2), j);
    aux.set_agregar((boolean)table.getValueAt(j,3), j);
    aux.set_type();
}
study_list.add(aux);
try{
    ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("StudyList.txt"));
    out.writeObject(lista_estudio);
    out.close();
}
catch(Exception exp){
}

感谢您的建议和新手问题。

1 个答案:

答案 0 :(得分:3)

  

1)当我将WordsData的对象创建到另一个类时,我该怎么办?   将带有数组的新对象添加到ArrayList中,我需要添加   甚至是布尔值,因为如果为真,那么这个词就会被显示出来   游戏,否则它不会。

这可以通过使用ArrayList#addAllArrays.asList

的组合来实现

Arrays.asList允许您从数组中创建List。 ArryaList#addAll将所提供的Collection中的所有值添加到ArrayList的实例

关于问题的第二部分,您可以使用第二个ArrayList,其中包含所有“活动”字词或要使用的字词的索引值,链接到母版ArrayList

查看Collections Trail了解更多详情

  

2)用户是否可以选择文件名?我的意思是   而不是用“StudyList.txt”用户可以说   “myFirstStudyList.txt”或“lalala.txt”以及如何做到这一点,我   尝试过:

是。您遇到问题的原因是您忘记了正确地连接String值。

而不是......

fileName ".txt"

尝试使用

fileName + ".txt"