bardockyo
bardockyo

Reputation: 1435

Creating struct like data structure in Java

I am new to Java and I am trying to find out a way to store information like a struct in C. Say for example I want to have a program hire employees. It would take from the user a first name, last name, and id number and would store it. The user could then view that information based off a condition (if the database had more than 1 employee for example). Can any suggest the best way for doing this?

Upvotes: 12

Views: 105399

Answers (4)

Markus Pscheidt
Markus Pscheidt

Reputation: 7331

In Java 16 there are Records (JDK Enhancement Proposal 395):

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

This comes with a canonical constructor, field accessors, hashCode(), equals() and toString() implementations.

Upvotes: 4

Fred E
Fred E

Reputation: 1

I have a big problem with structures not being supported in Java. I am writing an Android app which receives data via Bluetooth from an embedded ARM based device (written in "C"). This data when received is a packed array of bytes which contains the contents of my embedded device's EEPROM.

In "C", C++, or "C#", I can simply "cast" this stream of bytes to a structure representing the EEPROM on the embedded device and programmatically use the members of the structure simply by referring to them. In Java, I don't have this option and there's no good way to do it since Java (except for an obscure IBM version which supports packed classes) doesn't allow you to have "packed" classes where the class members are packed without headers and footers to each class member.

Upvotes: 0

Salvo
Salvo

Reputation: 561

I would create a public class with public fields and a default constructor, like this:

    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";

Upvotes: 2

hqt
hqt

Reputation: 30276

A struct in C just like a class in Java and much more powerful, because class in Java can contain method, and C++ does. You create a new class. For example :

   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; }
    }

And when you want to create multi employees, create array just like in 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);

Upvotes: 24

Related Questions