javaarraysarraylistdiamond-operator

What is the diamond operator in Java?


I have an arraylist with type patient_class and the arraylist type has been underlined in yellow and the IDE has mentioned "redundant type arguments in new expression (use diamond operator instead)".

My problem is: Should I use the diamond operator instead? Is it a must? Will I get any data loss or any other problem when storing records to the arraylist?

Here is my arraylist:

public class Register_newpatient extends javax.swing.JFrame {

    public Register_newpatient() {
        initComponents();
        groupbutton();
    }

    public void groupbutton()
    {
        ButtonGroup bg1=new ButtonGroup();

        bg1.add(rbopd);
        bg1.add(rbinpatientcare);
        bg1.add(rbboth);
    }

    all_error_handling checkerror = new all_error_handling();
    JFrame frame = new JFrame();
    static ArrayList<patient_class>patientlist = new ArrayList<patient_class>();

To be honest I have no idea what a diamond operator actually is.


Solution

  • Don't worry. It's not an evil. It's feature of Java 7.

    The purpose of the diamond operator is to simplify instantiation of generic classes.

    For example, instead of

    List<Map<Integer,Set<String>>> p = new ArrayList<Map<Integer,Set<String>>>();
    

    with the diamond operator we can write only

    List<Map<Integer,Set<String>>> p = new ArrayList<>();
    

    If you want to know more about it and want to use it, please have a quick look here and decide whether it's useful to you or not.