2017-02-22 26 views
1
List<List<Integer>> triangle = new ArrayList<List<Integer>>(); 
    triangle.add(Arrays.asList(75)); 
    triangle.add(Arrays.asList(64, 94)); 
    triangle.add(Arrays.asList(82, 47, 82)); 
    int max = 0; 
    int x = 0; 
    int y = 0; 
    int sum = 75; 
    int j = 0; 


    for (int i = 1; i < triangle.size() - 1; i++) { 
     FOUND: { 
      for (j = j; j <= triangle.get(i).size(); j++) { 
       x = triangle.get(i).get(j); 
       y = triangle.get(i).get(j + 1); 
       max = Math.max(x, y); 
       int index = triangle.get(i).indexOf(max); 
       System.out.println("INDEX: "+index); 
       j = index; 
       sum += max; 
       break FOUND;  
      } 
     } 
    } 
} 
  • Вот когда я сравниваю, скажем, между 47 и 82 x.add(Arrays.asList(82, 47, 82)). Здесь 47 находится в индексе 1, а 82 - в индексе 2, а максимальный из двух равен 82, что соответствует индексу 2. Поэтому я хочу, чтобы он печатал индекс как 2 вместо 0.Как получить индекс элемента в списке, если есть дублирующиеся элемент

  • Есть ли способ, которым я могу сделать что? Любая помощь приветствуется!

ответ

2

Вы можете использовать lastIndexOf метод, чтобы получить последний индекс этого элемента, например .:

int index = triangle.get(i).lastIndexOf(max); 
System.out.println("INDEX: "+index); 

Here «s в exmple того же самого.