从列表中获取连续的对

Getting Consecutive Pairs from a List

我正在重构一些代码,其中一部分看起来像这样 -

    public void addElementPairsToConfig(final Config config, final Element element1, final Element element2, final Element...elements) throws Exception {  
        config.addDependency(element1, element2);
        Element currentElement = element2;
        for (int i = 0; i < elements.length; i++) {
        config.addDependency(currentElement, elements[i]);
        currentElement = elements[i];
        }   
    }

这是我认为实际应该看起来的样子 -

    public void addElementPairsToConfig(final Config config, final Element...elements) throws Exception {        
        for (Pair<Element, Element> pair : elements.getNextPair()) {
        config.addDependency(pair.getFirst(), pair.getLast());
        }   
    }  

我知道 Apache Commons 有一个 Pair class,我会使用它,但找不到执行此操作的 List util 方法,是否存在。我不介意自己写一个,但我不想重新发明轮子并使用 Apache CommonsGuava 中的东西,如果它存在的话。

在 ruby 世界中,我会使用类似 slice 的东西。

您对方法签名的更改非常好。但是,您对方法实现的想法是过度设计的。我建议保持简单:

public void addElementPairsToConfig(final Config config, final Element...elements) throws Exception {        
    for (int i = 1; i < elements.length; i++) {
        config.addDependency(elements[i-1], elements[i]);
    }
}