2014-02-01 6 views
0

Чтобы найти минимальное значение в коллекции данных типов, что мне нужно, чтобы установить «значение», чтобы сравнить его с «min»? Значение должно быть следующим элементом в коллекции, и оно должно повторяться до тех пор, пока сбор не будет полностью прочитан.Поиск минимального значения в коллекции

public <T> T min(Collection<T> c, Comparator<T> comp) { 
if ((c == null) || (comp == null)) { 
    throw new IllegalArgumentException(); 
    } 

    if (c.isEmpty() == true) { 
    throw new NoSuchElementException(); 
    } 

    Iterator itr = c.iterator(); 
    T min = (T)itr.next(); 
    T value = ; 
    while (itr.hasNext()) { 
    if (comp.compare(min, value) < 0) { 
     min = value; 
    } 
    } 
    return min; 

}

+1

Вы видели 'Коллекции # min'? – Prince

+0

Это для школьного задания, и я не могу импортировать пакет коллекций. – furuf

+1

Не используйте rawtypes и бросайте в 'T', используйте' Iterator ', который дает вам' T' без кастинга. – zapl

ответ

3

Используйте следующий код:

Iterator itr = c.iterator(); 
T min = (T)itr.next(); 
T value; 
while (itr.hasNext()) { 
     value=(T)itr.next(); 
     if (comp.compare(min, value) < 0) { 
     min = value; 
     } 
} 
Смежные вопросы