gpt4 book ai didi

java - ArrayList for 循环打印索引而不是值

转载 作者:行者123 更新时间:2023-12-01 11:35:55 25 4
gpt4 key购买 nike

我创建了一种方法来读取文本文件并从每一行中提取联系人的姓名。

private  ArrayList<String> readContacts()
{
File cFile = new File ("Contacts.txt");
BufferedReader buffer = null;
ArrayList <String> contact = new ArrayList<String>();
try
{
buffer = new BufferedReader (new FileReader (cFile));
String text;
String sep;
while ((sep = buffer.readLine()) != null)
{
String [] name = sep.split (",");
text = name[1];
contact.add(text);
}
}
catch (FileNotFoundException e)
{

}
catch (IOException k)
{

}
return contact;
}

我正在尝试使用我上面创建的方法使用每个联系人姓名填充 JList:

model = new DefaultListModel();
for (int i = 1; i < readContacts().size(); i++)
{
ArrayList <String> name = readContacts();
model.addElement(name);
}

nameList = new JList (model);
add(nameList);

当我运行该程序时,JList 只有数字 1-10,而不是每个联系人姓名。我在这里遇到的问题是逻辑问题还是语法问题?任何帮助都会很棒,谢谢!

最佳答案

  1. 不要在 for 循环内调用 readContacts(),因为这毫无意义。您多次创建一个新的 ArrayList,然后将整个相同的 ArrayList 添加到您的 JList,换句话说,您的 JList 中的每个元素都是一个 ArrayList(???)。
  2. 而是在 for 循环条件中或 for 循环之前调用它。
  3. 不要有空的 catch(...) block 。这样做在编程上相当于闭着眼睛开车——非常危险。
<小时/>

例如,

model = new DefaultListModel();
// call readContacts() only *once*
for (String name: readContacts()) {
model.addElement(name);
}

关于java - ArrayList for 循环打印索引而不是值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29995522/

25 4 0