Реализация java.util.ArrayList
реализует List
а также расширяет AbstractList
. Но в java-документах вы можете видеть, что AbstractList уже реализует List. Тогда не было бы лишним реализовать List, а также расширить AbstractList?
Мой второй вопрос
Пожалуйста, ознакомьтесь со следующим кодом:
String str = "1,2,3,4,5,6,7,8,9,10";
String[] stra = str.split(",");
List<String> a = Arrays.asList(stra);
Метод Arrays.asList()
класса Arrays содержит собственную реализацию ArrayList. Но это только расширяет AbstractList, но не реализует List. Но приведенный выше код компилируется.
НО, когда код изменен на следующий
String str = "1,2,3,4,5,6,7,8,9,10";
String[] stra = str.split(",");
java.util.ArrayList<String> a = Arrays.asList(stra);
Я получаю сообщение об ошибке: cannot convert form List<String> to ArrayList<String>
В чем причина этого?
РЕДАКТИРОВАТЬ Arrays.asList()
возвращает свою собственную реализацию ArrayList. Проверьте это.