-1

我想开发一个函数,它通过arrayList中的一组整数作为过滤器。基本上我将不得不检索 arrayList 中的最大值和最小值。

示例: min= 1970 AND max=2012 (谈论年份,但它们被视为简单整数)

我必须确定五年的范围,以便输出为

“从 1970 年到 1975 年”点击我将有列表“1970”、“1971”、“1972”、“1973”、“1974”、“1975”“从 1970 到 1975”........ ....“从 2010 年到 2012 年”onclick 我将有列表“2010”、“2011”、“2012”

我以前使用模式/匹配器来按字母顺序创建间隔,我会在正确的字母范围内(例如从 A 到 B)对字符串进行分类,但这是不同的,因为我必须定义一个 5 的范围,并创建子数组。

请帮忙。

谢谢

4

1 回答 1

-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。

于 2012-04-24T10:13:00.307 回答