我想开发一个函数,它通过arrayList中的一组整数作为过滤器。基本上我将不得不在arrayList中检索max和min值。
示例:min = 1970 AND max = 2012(谈论年份,但它们被视为简单的整数)
我必须确定五年的范围,以便输出
“从1970年到1975年”onclick我将列出“1970”,“1971”,“1972”,“1973”,“1974”,“1975” “从1970年到1975年”...... ...... “从2010年到2012年”onclick我将列出“2010”,“2011”,“2012”
列表我之前使用过模式/匹配器来按字母顺序创建区间,我会按正确的字母顺序对字符串进行分类(例如从A到B),但这是不同的,因为我必须定义5的范围,并且创建子阵列。
请帮忙。
由于
答案 0 :(得分:-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年 - &gt; 1994年从名单中。