1

你好,

我是 Java 新手,想弄清楚如何将这些数据推送到数组中(6 行,3 列)?

x1 John 6
x2 Smith 9
x3 Alex 7
y1 Peter 8
y2 Frank 9
y3 Andy 4

之后,我将从最后一列中取出数字进行数学计算。

这是我的代码...

public class Testing {
    public static void main(String[] args) {

        Employee eh = new Employee_hour();

        Employee_hour [] eh_list = new Employee_hour[6];
        eh_list[0] = new Employee_hour("x1", "John", 6);
        eh_list[1] = new Employee_hour("x2", "Smith", 9);
        eh_list[2] = new Employee_hour("x3", "Alex", 7);
        eh_list[3] = new Employee_hour("y1", "Peter", 8);
        eh_list[4] = new Employee_hour("y2", "Frank", 9);
        eh_list[5] = new Employee_hour("y3", "Andy", 4);
        print(eh_list);
    }

    private static void print(Employee_hour[] mass){
        for (int i = 0; i < mass.length; i++) {
            System.out.print(mass[i] + " ");
        }
        System.out.println();
    }
}

但我得到这个作为输出......

testing.Employee_hour@1a752144 testing.Employee_hour@7fdb04ed testing.Employee_hour@420a52f testing.Employee_hour@7b3cb2c6 testing.Employee_hour@4dfd245f testing.Employee_hour@265f00f9

如何从最后一列获取数字?

4

5 回答 5

9

为什么不为您的记录创建一个特定的 Java bean?

class Person {
  String id;
  String name;
  int anotherNumber;
  // constructor, getters, setters
}

然后像这样使用它:

Person [] people = new Person[10];
people[0] = new Person("x1", "John", 6);
...

或者更好的是使用java.util.List而不是数组。

现场访问

为了访问单独的字段,您要么需要公开您的字段(非常糟糕的主意)并将它们简单地称为object_instance.field_name,要么提供所谓的 getter:

class Person {
  String id;
  String name;
  int anotherNumber;
  // constructor, getters, setters

  public int getAnotherNumber() {
     return anotherNumber;
  }
}

然后在打印时调用它:

for (int i = 0; i < mass.length; i++) {
    System.out.print(mass[i].getAnotherNumber() + " ");
}

为什么您尝试的方法不起作用:

System.out.println(mass[0])在您的情况下将打印整个对象表示,默认情况下它会打印在您的情况下所做的事情。为了做得更好,您需要覆盖ObjectString toString()方法:

class Person {
  String id;
  String name;
  int anotherNumber;
  // constructor, getters, setters

  public String toString() {
     return "{id="+id+", name="+name+", anotherNumber="+anotherNumber+"}";
  }
}
于 2012-06-20T10:37:07.813 回答
3

Java 是强类型的,因此您不能只创建一个可以接受任何类型的数组。
但是,您可以创建一个类型为 的多维数组Object,并将java.lang.Integer其用于整数值。
另一种方法是创建一个代表表中行的类,并创建一个该类的数组。

于 2012-06-20T10:36:32.787 回答
2

如果要将其存储为数组用户 2 维数组。这是一个示例。

String[][] a2 = new String[10][5];
   for (int i=0; i<a2.length; i++) {
   for (int j=0; j<a2[i].length; j++) {
   a2[i][j] = i;
   System.out.print(" " + a2[i][j]);
   }
   System.out.println("");
   }
  }

更好的方法是创建一个对象

class User {
  String id;
  String userName;
  int userSomeValue;

 //
}

然后将其推送到列表

User ob1=new User();
// set the values.
List<User> userList=new ArrayList<User>();
userList.add(ob1);

使用此列表通过使用检索内容进行处理

userList.get(index);
于 2012-06-20T10:45:09.150 回答
1

Array是一个类型安全的集合,您可以使用泛型对象数组。其他方式使用collection Api

于 2012-06-20T10:41:13.390 回答
0

有一些方法可以将数据存储在数组中,但您只能将相同类型的值存储在一个数组中。例如只是 String、int 或 float。在您的情况下,您必须使用 String 但您不能使用字符串类型变量进行任何计算,即使它包含一个数字。我会建议马克西莫夫描述的方式。

于 2012-06-20T10:51:34.250 回答