确定arrayList中整数值的范围(间隔)

时间:2012-04-24 09:54:32

标签: java range intervals

我想开发一个函数,它通过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的范围,并且创建子阵列。

请帮忙。

由于

1 个答案:

答案 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年从名单中。