2014-01-30 2 views
1
horse1ProgressionStr = Integer.toString(horse1Progression); 
    horse2ProgressionStr = Integer.toString(horse2Progression); 
    horse3ProgressionStr = Integer.toString(horse3Progression); 
    horse4ProgressionStr = Integer.toString(horse4Progression); 




    List<List<String>> list = Arrays.asList(Arrays.asList(horse1ProgressionStr, horse2ProgressionStr, horse3ProgressionStr, horse4ProgressionStr)); 
    for (List<String> l : list) { 
     Collections.sort(l); 
    } 
    Collections.sort(list, new Comparator<List<String>>() { 
     public int compare(List<String> o1, List<String> o2) { 
      return o1.get(0).compareTo(o2.get(0)); 
     } 
    }); 


    System.out.println("" + list); 


    List<List<String>> fourthHorse = list.subList(0, 2); 
    List<List<String>> thirdHorse = list.subList(2, 4); 
    List<List<String>> secondHorse = list.subList(4, 6); 

Я пытаюсь поместить 4 ints в порядок, и они помещают их в отдельные переменные, но каждый путь, который я пытаюсь сделать, кажется, дает мне исключение из-за пределов.subListString Индекс за пределами

Exception =

Исключение в потоке "основной" java.lang.IndexOutOfBoundsException: toIndex = 2

+1

У вас есть точно ** один ** 'Список' внутри вашего' list' –

ответ

0

Код в этом вопросе является чрезмерно сложным, просто сделать это:

int[] horses = { horse1Progression, horse2Progression, 
       horse3Progression, horse4Progression }; 

// sort the input array in ascending order 
Arrays.sort(horses); 

// retrieve the elements in each position 
int first = horses[0]; 
int second = horses[1]; 
int third = horses[2]; 
int fourth = horses[3]; 
+1

Большое вам спасибо, я пытался это сделать на века! – user3254808

+0

@ пользователь3254808 добро пожаловать! если этот ответ решил вашу проблему, пожалуйста, не забудьте [принять] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work), нажав на галочку налево ;) –

0

размер объекта list - это 4, но вы пытаетесь получить список до 6 индекса list.subList(4, 6).