Итак, идея состоит в том, чтобы получить вход, который является String
(имя для конкретного), а затем сохранить его в Array
с размером 26 в соответствующую ячейку. Сортировка идет следующим образом: имена, начинающиеся с «A», поступают в ячейку 0, имена, начинающиеся с «B», переходят в ячейку 1 и так далее. Теперь ячейка содержит LinkedList
, где имена сортируются в алфавитном порядке.Сортировка имен и их хранение в ячейке массива с LinkedList
До сих пор подход, который я сделал, заключается в использовании корпуса коммутатора.
private void addDataAList(AuthorList[] aL, String iN) {
char nD = Character.toUpperCase(iN.charAt(0));
switch(nD){
case 'A':
AuthorList[0] = iN;
break;
case 'B':
AuthorList[1] = iN;
break;
//and so on
}
}//addData
есть ли более эффективный способ сделать это?
Есть вы попробовали 'AuthorList [nD - 'A] = iN;'? – OldCurmudgeon
@OldCurmudgeon нет, и спасибо. Я даже не знал, что ты сможешь это сделать. – Helquin
Но вам нужно как-то защитить от ArrayOutOfBoundException. Например, поймать его и выбросить новое IllegalArgumentException с соответствующим сообщением о требовании первой буквы капитала. Также полезно использовать iN.trim(). –