在Java中创建类似数据结构的结构

时间:2013-02-10 02:48:18

标签: java c data-structures

我是Java的新手,我正试图找到一种方法来存储C中的结构信息。例如,我希望有一个程序雇佣员工。它将从用户获取名字,姓氏和身份证号码并存储它。然后,用户可以根据条件查看该信息(例如,如果数据库有超过1名员工)。有人建议这样做的最好方法吗?

4 个答案:

答案 0 :(得分:22)

C中的结构就像Java中的类一样,功能更强大,因为Java中的类可以包含方法,而C ++则包含方法。您创建一个新类。例如:

   class Employee {
       private String name;
       private int code;

   // constructor
   public Employee(String name, int code) {
      this.name = name;
      this.code = code;
   }

       // getter
       public String getName() { return name; }
       public int getCode() { return code; }
       // setter

       public void setName(String name) { this.name = name; }
       public void setCode(int code) { this.code = code; }
    }

当你想创建多名员工时,就像在C:中创建数组一样:

Employee[] arr = new Employee[100];  // new stands for create an array object
arr[0] = new Employee("Peter", 100); // new stands for create an employee object
arr[1] = new Employee("Mary", 90);

答案 1 :(得分:1)

在 Java 16 中有 Records (JDK Enhancement Proposal 395):

public record Employee(String firstName, String lastName, String id) {
}

这带有规范的构造函数、字段访问器、hashCode()equals()toString() 实现。

答案 2 :(得分:0)

我将使用公共字段和默认构造函数创建一个公共类,如下所示:

    public class Employee {
       public String name, last_name;


   // constructor
   public Employee() {
      this.name = "";
      this.last_name= "";
   }


    }

  ....
  //when using it
  Employee e = new Employee();
  e.name ="Joe";
  e.last_name = "Doe";

答案 3 :(得分:0)

我有一个很大的问题,Java不支持结构。我正在编写一个Android应用程序,该程序通过基于蓝牙的嵌入式设备(通过“ C”编写)通过蓝牙接收数据。接收到的这些数据是一个打包的字节数组,其中包含嵌入式设备的EEPROM的内容。

在“ C”,C ++或“ C#”中,我可以简单地将字节流“广播”到表示嵌入式设备上EEPROM的结构中,并通过引用它们以编程方式使用该结构的成员。在Java中,我没有此选项,并且没有很好的方法,因为Java(除了支持打包类的晦涩的IBM版本除外)不允许您使用“打包”类来封装类成员而没有每个班级成员的页眉和页脚。