у меня есть два типа для петель, fileList
в данном случае это просто пользовательский класс, который расширяет AbstractList<Object>
Различных типов для петель
1) цикла итерации по индексу:
public String getExtensionByDescription(String description)
{
for (int i = 0; i < fileList.size(); i++)
if (description.contains(fileList.get(i).getDescription()))
return fileList.get(i).getExtension();
}
2) Для цикла повторяется для пунктом в списке:
public String getExtensionByDescription(String description)
{
for (FileType obj : fileList)
if (description.contains(obj.getDescription()))
return obj.getExtension();
}
Are метод 1) и 2) логически то же или нет? Потому что 1) возвращает значение, которое я ожидаю, но метод 2) возвращает неправильное значение. Спасибо за помощь!
Реализация списка с различными методами получения.
public class FileList extends AbstractList<Object>
{
private ArrayList<FileType> fileList;
public FileList()
{
fileList = new ArrayList<FileType>();
}
public void add(String search, String type, String extension, String description, String htmlicon)
{
FileType data = new FileType(fileList.size(), search, type, extension, description, htmlicon);
if (!fileList.contains(data))
{
fileList.add(data);
}
}
@Override
public Object get(int index)
{
return fileList.toArray()[index];
}
и другой класс
public FileType(int index, String search, String type, String extension, String description, String icon)
с функцией:
public String getDescription()
{
return description;
}
'AbstractList
Зачем расширять класс списка, когда вы можете просто создать 'ArrayList' с самого начала? –
Я честно говоря, не помню прямо сейчас, была причина, и я помню, что она хорошая, но сейчас я собираюсь в 30-х годах кодирования, и я не могу вспомнить. Я просто знаю, что мне пришлось расширять его и создавать собственные методы получения, которые мне нужны, потому что иначе я не мог найти значения FileType. – codeCompiler77