¿Qué es el operador de diamantes en Java?

Tengo un arraylist con tipo patient_class y el tipo de arraylist ha sido subrayado en amarillo y el IDE ha mencionado “argumentos de tipo redundante en una nueva expresión (use en su lugar el operador de diamante)”.

Mi problema es: ¿Debería usar el operador de diamante en su lugar? ¿Es obligatorio? ¿Obtendré alguna pérdida de datos o cualquier otro problema al almacenar registros en el arraylist?

Aquí está mi lista de arrays:

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 ArrayListpatientlist = new ArrayList(); 

Para ser sincero, no tengo idea de qué es realmente un operador de diamantes.

No te preocupes No es un mal Es una característica de Java 7.

El objective del operador de diamantes es simplificar la creación de instancias de clases genéricas.

Por ejemplo, en lugar de

 List>> p = new ArrayList>>(); 

con el operador de diamantes podemos escribir solo

 List>> p = new ArrayList<>(); 

Si desea obtener más información al respecto y desea utilizarla, eche un vistazo rápido aquí y decida si le resulta útil o no.

El operador de diamantes se utiliza para especificar qué tipo de datos va a utilizar en las Colecciones.

Por ejemplo, ArrayList list = new ArrayList() .

En Java 7, podemos eliminar el tipo como:

 ArrayList list = new ArrayList<>()