Q:

warning: [unchecked] unchecked conversion ArrayList  Java

Tras compilar mi proyecto Clean and build, he encontrado que tengo bastantes warnings algunos de tipo conversión de datos. El proyecto me funciona correctamente pero querría limpiar los warnings.
Algunos de ellos:
linea 68: warning: [unchecked] unchecked conversion
        dnis = Conexiones.cargar_dni();
  required: ArrayList<String>
  found:    ArrayList
linea 74: warning: [unchecked] unchecked call to addItem(E) as a member of the raw type JComboBox
            jComboBox_DNIs.addItem("Seleccione un DNI...");
  where E is a type-variable:
    E extends Object declared in class JComboBox
linea 78: warning: [unchecked] unchecked call to addItem(E) as a member of the raw type JComboBox
                jComboBox_DNIs.addItem(i.next());
  where E is a type-variable:
    E extends Object declared in class JComboBox
linea 84: warning: [unchecked] unchecked conversion
            ArrayList <String> ciudades = Conexiones.cargar_ciudad();
  required: ArrayList<String>
  found:    ArrayList

¿Por qué me dice que se esperaba un ArrayList pero encontró un ArrayList sin declarar de qué tipo es cuando sí lo he declarado?
Es muestro el código de esas líneas:
        ArrayList<String> dnis = new ArrayList<String>();
        //Cargamos los valores de la función "cargar_dni" de Conexiones.java en el arrayList "dni".
        dnis = Conexiones.cargar_dni();

        if(!dnis.isEmpty()){
            //Creamos un iterator para recorrer el ArrayList.
            Iterator<String> i = dnis.iterator();
            //Dato inicial del jComboBox_DNIs
            jComboBox_DNIs.addItem("Seleccione un DNI...");
            //Recorremos el iterator "i".
            while(i.hasNext()){
                //Añadimos a los items cada dni.
                jComboBox_DNIs.addItem(i.next());
            }

            //Creamos una variable de la clase TextAutoCompleter.
            TextAutoCompleter tac = new TextAutoCompleter(textfield_ciudad);
            //Creamos un arrayList de ciudades y le cargamos las ciudades.
            ArrayList <String> ciudades = Conexiones.cargar_ciudad();
            //Recorremos el arraylist y añadimos al "tac" cada una de las ciudades.
            for(String ciudad: ciudades){
                tac.addItem(ciudad);
            }

Código cargar_dni:
        public static ArrayList cargar_dni() {
            ArrayList<String> dnis = new ArrayList<String>();
            String bbdd = Conexiones.bbdd;
            Connection c = (Connection) Conexiones.conexion_a_BBDD(bbdd);
            Statement stm;
            ResultSet rs;
            try {
                //Consulta para sacar todos los DNIs de la tabla "clientes".
                stm = c.createStatement();
                String consulta_dnis = "SELECT dni FROM clientes ORDER BY dni ASC";
                rs = stm.executeQuery(consulta_dnis);
                //System.out.println("CONSULTA TODOS LOS DNIs: Mostramos todos los DNIs de la tabla 'clientes'.");
                int i = 0;
                while (rs.next()) {
                    String dni = rs.getString("dni");
                    dnis.add(dni);
                    i++;
                }
                //System.out.println(dnis);
                c.close();
            } catch (SQLException e) {
                //e.printStackTrace();
                System.out.println("Ha habido un error.");
            }     
            return dnis;
        }

Código cargar_ciudad:
public static ArrayList cargar_ciudad() {
    ArrayList<String> ciudades = new ArrayList<String>();
    String bbdd = Conexiones.bbdd;
    Connection c = (Connection) Conexiones.conexion_a_BBDD(bbdd);
    Statement stm;
    ResultSet rs;
    try {
        //Consulta para sacar todas las ciudades de la tabla "clientes".
        stm = c.createStatement();
        String consulta_ciudades = "SELECT DISTINCT ciudad FROM clientes";
        rs = stm.executeQuery(consulta_ciudades);
        //System.out.println("CONSULTA TODOS LOS teléfonos: Mostramos todas las ciudades de la tabla 'clientes'.");
        int i = 0;
        while (rs.next()) {
            String ciudad = rs.getString("ciudad");
            ciudades.add(ciudad);
            i++;
        }
        //System.out.println(ciudades);
        c.close();
    } catch (SQLException e) {
        //e.printStackTrace();
        System.out.println("Ha habido un error.");
    }     
    return ciudades;
}

Deduzco que el código está bien programado pero, ¿cómo se pueden resolver esos warnings?

A:

linea 68: warning: [unchecked] unchecked conversion
        dnis = Conexiones.cargar_dni();
  required: ArrayList
  found:    ArrayList

El método cargar_dni, devuelve un ArrayList. Para quitar el warning, define el tipo de elementos del ArrayList . 

public static ArrayList<String> cargar_dni()

linea 84: warning: [unchecked] unchecked conversion
            ArrayList  ciudades = Conexiones.cargar_ciudad();
  required: ArrayList
  found:    ArrayList

El método cargar_ciudad, devuelve un ArrayList. Para quitar el warning, define el tipo de elementos del ArrayList 

public static ArrayList<String> cargar_ciudad()

linea 74: warning: [unchecked] unchecked call to addItem(E) as a member of the raw type JComboBox
            jComboBox_DNIs.addItem("Seleccione un DNI...");
  where E is a type-variable:
    E extends Object declared in class JComboBox
linea 78: warning: [unchecked] unchecked call to addItem(E) as a member of the raw type JComboBox
                jComboBox_DNIs.addItem(i.next());
  where E is a type-variable:
    E extends Object declared in class JComboBox

¿Tienes definido el tipo de datos que utiliza tu Combobox? No incluyes tu declaración, pero creo que ese warning se solucionaría añadiendo su tipo:
JComboBox<String> jComboBox_DNIs

