这是我第一次同时使用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){
}
感谢您的建议和新手问题。
答案 0 :(得分:3)
1)当我将WordsData的对象创建到另一个类时,我该怎么办? 将带有数组的新对象添加到ArrayList中,我需要添加 甚至是布尔值,因为如果为真,那么这个词就会被显示出来 游戏,否则它不会。
这可以通过使用ArrayList#addAll
和Arrays.asList
Arrays.asList
允许您从数组中创建List。 ArryaList#addAll
将所提供的Collection
中的所有值添加到ArrayList
的实例
关于问题的第二部分,您可以使用第二个ArrayList
,其中包含所有“活动”字词或要使用的字词的索引值,链接到母版ArrayList
查看Collections Trail了解更多详情
2)用户是否可以选择文件名?我的意思是 而不是用“StudyList.txt”用户可以说 “myFirstStudyList.txt”或“lalala.txt”以及如何做到这一点,我 尝试过:
是。您遇到问题的原因是您忘记了正确地连接String值。
而不是......
fileName ".txt"
尝试使用
fileName + ".txt"