当前位置: 首页 > 知识库问答 >
问题:

ArrayList对象到单独的数组转换

钱承允
2023-03-14

我在这个问题上卡住了,我做了一个类Person,其中只有两个属性名称和年龄。我把那个人的详细信息作为用户输入,并保存为ArrayList中的对象,但是我想将用户从键盘输入的对象属性移动到单独的数组中,就像所有人的名字都移动到String数组中一样,所有年龄的人都从ArrayList中移动到int数组中。有没有办法做到这一点?代码:

public class Person {

    String name;
    int age;

}

public class Main {

    public static void main(String[] args) {


        Scanner s = new Scanner(System.in);
        ArrayList<Person> arr = new ArrayList<Person>();
        Person person = null;



        for(int i=0;i<2;i++){
            person = new Person();
            System.out.println("Enter Person "+(i+1)+" Record");
            int age = 0;
            System.out.print("Enter Name : ");
            String str = s.nextLine();
            person.name = str;
            System.out.print("Enter Age : ");
            age = s.nextInt();
            s.nextLine();
            person.age = age;
            arr.add(person);
            person = null;
            System.out.println("Record "+(i+1)+" Successful Fill");

        }
            String[] stringarray = new String[arr.size()];
            int[] intarray = new int[arr.size()];

    }

}

共有3个答案

庾波光
2023-03-14

我不知道有什么新奇的方法可以做到这一点,但有一种方法可以做到这一点,无论何时,只要你们需要它们,就是创建一个方法来循环遍历所有Person对象,并生成两个信息数组。

所以...

int[] ages = new int[arr.size()];
String[] names = new String[arr.size()];
for(int i = 0; i < arr.size(); i++){
     //assign attributes
}

然后用这些数组做任何你想做的事。。。

同样,可能有更好的方法来做这件事,但这肯定会奏效,尽管效率不高。

但是,在for循环中,就在向数组添加Person对象的位置,您可以在开始时将它们添加到已声明的数组列表中。

然后,如果你真的需要它是一个“列表”而不是“ArrayList”,你可以把ArrayList转换成一个列表。这是一个很好的例子。

寇涵容
2023-03-14

有很多方法可以做到这一点。一种是为年龄和姓名创建ArrayList,并在每次引入新值时添加它们。

ArrayList<String> names = new ArrayList<>();
ArrayList<int> ages = new ArrayList<>();

for(int i = 0; i < 2; i++){
    // create person object
    names.add(str);
    ages.add(age);
}

如果它们绝对需要是数组,那么您可以使用以下方法进行转换:

String[] nameArray = names.toArray(new String[0]);
String[] ageArray = ages.toArray(new int[0]);
万博涛
2023-03-14

如果你想保持你的数组列表与人对象和填充数组后,所有的值读取创建一个新函数:

private void add2Arrays(List<Person> list) {
  for(int i = 0; i < list.size(); i++) {
    Person p = list.get(i);
    stringarray[i] = p.getName();
    intarray[i] = p.getAge();
  }
}
 类似资料:
  • 问题内容: Java中是否有命令将ArrayList转换为对象数组。我知道如何将每个对象从arrayList复制到对象数组,但是我想知道是否会自动完成。 我想要这样的东西: 问题答案: 像标准Collection.toArray(T [])之 类的东西应该可以满足您的需求(请注意实现): 附带说明一下,您应该考虑将定义定义为类型,而不是,这样可以避免某些特定于实现的定义,而这些定义可能并不真正适用

  • 我创建了一个程序,其中包含一个ArrayList,其中包含学生成绩的单独“双”值。然而,本课程要求创建一个分数整数数组,而不是我之前使用的单独值。 我的学生类代码(我已经删除了不相关的代码,开门见山): 名册等级: 我已经将分隔的值(Grade1、Grade2、Grade3)更改为“int[]Grades”数组,修改了构造函数,并添加了setter和getter。所以,我认为学生班很好,然而花名册

  • 我有档案卡。java和Util。java,我不允许修改它。出于我自己的目的,我创建了一个类Card2,它扩展了Card,并添加了一个方法和一个方法。Util类包含一个采用ArrayList的方法 我的理解是,在这种情况下,

  • 我试了我所看到的一切,但没有成功,如果有人能帮上忙,哦,伙计… 问题是:我无法成功地将arraylist从servlet放到jsp中,eclipse在jsp中向我显示:从Object到arraylist的非约束转换,

  • 这是UML图中的实例方法: 此方法的目的是返回客户银行账户的所有汇总详细信息。 BankAccount是包含名称、帐户编号、余额和状态的类: 在BankManager类中,有一个实例变量: 方法),这将打印出所有的客户详细信息?

  • 我想创建一个字符串,如下所示。 我们如何创建这个字符串使用