Qual é o operador de diamante em Java?

Eu tenho um arraylist com o tipo patient_class e o tipo arraylist foi sublinhado em amarelo e o IDE mencionou “argumentos do tipo redundante em nova expressão (use o operador diamond em vez disso)”.

Meu problema é: devo usar o operador de diamante? É uma obrigação? Conseguirei alguma perda de dados ou qualquer outro problema ao armazenar registros no arraylist?

Aqui está meu 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 ArrayListpatientlist = new ArrayList(); 

Para ser honesto, não faço ideia do que é realmente um operador de diamantes.

Não se preocupe. Não é um mal. É um recurso do Java 7.

O objective do operador de diamante é simplificar a instanciação de classs genéricas.

Por exemplo, em vez de

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

com o operador de diamante só podemos escrever

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

Se você quiser saber mais sobre isso e quiser usá-lo, por favor dê uma olhada aqui e decida se é útil ou não.

O operador de diamante é usado para especificar que tipo de dados você usará nas Coleções.

Por exemplo, ArrayList list = new ArrayList() .

No Java 7, podemos eliminar o tipo como:

 ArrayList list = new ArrayList<>()