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

通过数组列表设置对象属性

易扬
2023-03-14

基本上,我正在做一个项目,其中某些类属性和类的名称存储在文本文件中。这里的目标是创建文本文件中列出的特定数据类型(在本例中为Car)的对象列表(我已经完成了),然后将这些对象分配给文本文件中的数据类型。下面是我将使用的文本文件的示例:

汽车:2辆

4 1 1红色3 80.5 20 60 2aadawd

1 3 2蓝色3 80 30 20 1aaxzd

自行车: 3

2 1

2号2号

2 3

基本上,“Car:2”表示我们有两辆车。下面的两行表示各自车辆的属性。为了不浪费时间在不必要的信息上,我只列出以下行的数据类型:

已经为汽车类课程设立了获得者/接受者。

到目前为止,我将该文件转换为一个名为list的ArrayList,其中文件的每一行表示数组的一个元素。这让我可以很容易地创建Car类型的ArrayList。我现在只需要设置汽车的属性。有什么想法吗?

            for (int i = 0; i < list.size(); i++) {


                if (list.get(i).contains("Red")) {

                    

                    carList.add(new RedCar());
                    
                    

                } else if (list.get(i).contains("Blue")) {

                    

                    carList.add(new BlueCar());
                    

                }  else if (list.get(i).contains("Yellow")) {


                    carList.add(new YellowCar());
                    

                }

            }





共有1个答案

陈飞语
2023-03-14

据我所知,你拥有你所需要的一切。要用属性填充carlist,必须先创建一个对象,并将其放入变量中,然后再将其推送到列表中。

...
if (list.get(i).contains("Red")) {
  //hopefully all cars inherts from Car
  Car c = new RedCar();
  final String[] attributes = list.get(i).split(" ");
  c.setFirstAttr(attributes[0]);
  c.setSecondAttr(attributes[1]);
  //and so on
  carList.add(c);
}

这可能是一种更好的方法,可以使用汽车的颜色作为属性。因为从这个角度来看,除了颜色,所有的车都是一样的。

//you dont have to decide which type if car you create
for (int i = 0; i < list.size(); i++) {
  //hopefully all cars inherts from Car
  Car c = new Car();
  final String[] attributes = list.get(i).split(" ");
  c.setFirstAttr(attributes[0]);
  //and so on
  c.setColor(attributes[3]);
  carList.add(c);
}
 类似资料:
  • 问题内容: 我知道您可以通过意图传递String的数组列表,但是如果它是我定义的某些对象的数组列表,该怎么办?说一个Bicyles的数组列表,我该怎么做? 问题答案: 您可以使对象实现Parcelable并使用。另外,您可以以某种方式序列化对象,然后放置序列化对象的字节数组。

  • 问题内容: 如何通过匹配对象属性从数组中删除对象? 请只使用本机JavaScript。 我在使用接头时遇到麻烦,因为每次删除的长度都会减少。使用克隆并在原始索引上进行拼接仍然会给您带来长度减少的问题。 问题答案: 我以为你用过这样的东西? 修复bug所需要做的就是在下一次减少,然后(也可以选择向后循环): 为了避免线性时间删除,可以编写要 保留 在数组上的数组元素: 为了避免在现代运行时中进行线性

  • 问题内容: 是否可以通过多个值过滤对象数组? 例如,在下面的示例中,我可以按term_ids 5和6进行过滤,然后同时键入car吗? 如果可以轻松使用,肯定可以使用库。 问题答案: 您可以使用Array.filter

  • 情况:我有一个包含多个子和子子对象的大对象,其属性包含多个数据类型。出于我们的目的,该对象类似于以下内容: 我需要遍历这个对象并构建一个键列表来显示层次结构,因此列表最终如下所示: 我得到了这个函数,它确实循环遍历对象并吐出键,但不是分层的: 有人能告诉我怎么做吗?这里有一个jsfiddle供您使用:http://jsfiddle.net/tbyna/

  • 我正在尝试过滤scala中对象列表的列表属性。例如: 用java定义的类 我的过滤器函数返回字符串列表而不是结果列表 UPDATE我想取回listOf中的所有结果,其中每个结果的名称属性被过滤。

  • 问题内容: 我需要动态设置JS对象属性名称。 结果应为: 问题答案: