gpt4 book ai didi

java - 如何从一个方法返回多个数组?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:50:11 25 4
gpt4 key购买 nike

假设我想将 6 个数组从一种方法返回到另一种方法(在另一个类中)。这样做的最佳方法是什么?为什么?

这就是我目前所拥有的。

 public Object getData()throws FileNotFoundException{
counter = 0;
Scanner f = new Scanner(new File("Contacts.txt")).useDelimiter(",");
while (f.hasNext()){
firstNames[counter] = f.next();
lastNames[counter] = f.next();
emailList[counter] = f.next();
ageList[counter] = f.next();
imgLoc[counter] = f.nextLine();
counter++;
}
f.close();

firstNames = Arrays.copyOf(firstNames, counter);
lastNames = Arrays.copyOf(lastNames,counter);
emailList = Arrays.copyOf(emailList, counter);
ageList = Arrays.copyOf(ageList, counter);
imgLoc = Arrays.copyOf(imgLoc, counter);
data = Arrays.copyOf(data, counter);
for (int i = 0; i <= counter - 1; i++){
data[i] = firstNames[i] + " " + lastNames[i] + ", " + ageList[i];
}
ArrayList<Object> arrays = new ArrayList<Object>();
arrays.add(firstNames);
arrays.add(lastNames);
arrays.add(emailList);
arrays.add(ageList);
arrays.add(imgLoc);
arrays.add(data);

return arrays;
}

使用 ArrayList 是一种猜测。我不确定我是否朝着正确的方向前进。

最佳答案

我认为这是一个糟糕的想法。

我更喜欢将 first、last、email、age 和 image 封装到 Person 类中并返回它们的列表的对象。

Java 是一种面向对象的语言。如果您停止从字符串、整数和数组等原语的角度思考并开始从对象的角度思考,您会做得更好。尽可能将本来应该放在一起的事物封装到一个对象中。

下面是我编写该方法的方式:

public List<Person> readPersons(File file) throws FileNotFoundException {

List<Person> persons = new LinkedList<Person>();

Scanner f = new Scanner(file).useDelimiter(",");
while (f.hasNext()){
String first = f.next();
String last = f.next();
String email = f.next();
String age = f.next(); // age ought to be a positive integer
String imageLocation = f.nextLine();
persons.add(new Person(first, last, email, age, imageLocation));
}

return persons;
}

代码更少,更容易理解。

关于java - 如何从一个方法返回多个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7582628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com