2012-04-24 2 views
-1

Я хочу разработать функцию, которая работает как фильтр через набор целых чисел в arrayList. В основном мне придется извлекать значения max и min в arrayList.Определить диапазон (интервал) целочисленных значений в arrayList

Пример: мин = 1970 и макс = 2012 (речь о лет, но они рассматриваются как простые целые числа)

я должен определить диапазон пяти-лет, так что выход будет

«С 1970 по 1975 год» onclick У меня будет список «1970», «1971», «1972», «1973», «1974», «1975» «С 1970 по 1975 год» ....... ...... ... «С 2010 по 2012 год» onclick У меня будет список «2010», «2011», «2012»

Я ранее использовал шаблон/сопряжение, чтобы cr интервалы в алфавитном порядке, где я буду классифицировать строки в правом алфавитном диапазоне (например, от A до B), но это другое, поскольку я должен определить диапазон из 5 и создать подмассивы.

Пожалуйста, помогите.

Благодаря

+0

Что вы подразумеваете под "onclic"? – sp00m

+0

От «onclic» вы имеете в виду какое-то событие? Также, пожалуйста, уточните немного больше. Фрагменты кода, если вы что-то пробовали, помогут. – vaisakh

+0

В чем Ваш вопрос? – aviad

ответ

-1

Предоставление список отсортирован, то вы можете просто иметь простую функцию, которая получает индекс более низкое значение, индекс более высокое значение - а затем возвращает подсписок с помощью этих индексов.

Вот пример программы:

public class Main { 

    public static void main(String[] args) { 

     List<Integer> myList = new ArrayList<Integer>(); 

     for (int i = 1970; i < 2013; i++) { 
      myList.add(i); 
     } 

     List<Integer> subList = getRange(myList, 1988, 1994); 

     for (Integer i : subList) { 
      System.out.println(i); 
     } 

    } 

    public static List<Integer> getRange(List<Integer> fromList, int lowVal, int highVal) 
    { 
     int lowValIndex = fromList.indexOf(lowVal); 
     int highValIndex = fromList.indexOf(highVal); 

     return fromList.subList(lowValIndex, highValIndex + 1); 
    } 

} 

Вернёт 1988 -> 1994 из списка.

Смежные вопросы