Java 如何在列表中获取连续值对?
我希望通过循环数组来获得连续值对:Java 如何在列表中获取连续值对?,java,Java,我希望通过循环数组来获得连续值对: List values = Arrays.asList("A", "B", "C"); ListIterator<String> it = values.listIterator(); while(it.hasNext()) { String start = it.previous(); String end = it.next(); } 试试这个:) List values=Arrays.asList(“A”、“B”、“
List values = Arrays.asList("A", "B", "C");
ListIterator<String> it = values.listIterator();
while(it.hasNext()) {
String start = it.previous();
String end = it.next();
}
试试这个:)
List values=Arrays.asList(“A”、“B”、“C”);
ListIterator it=values.ListIterator();
while(it.hasNext()){
字符串start=it.next();
if(it.hasNext()){
String end=it.next();
it.previous();
系统输出打印项次(开始+结束);
}
}
您可以使用经典的for
循环实现这一点,如下所示:
public static void main(String[] args) {
List<String> values = Arrays.asList("A", "B", "C");
/*
* You obviously want to output 2 values per iteration,
* that means you have to adjust the condition to iterate to the
* second last index (because of accessing i + 1)
*/
for (int i = 0; i < values.size() - 1; i++) {
System.out.println(values.get(i) + ", " + values.get(i + 1));
}
}
publicstaticvoidmain(字符串[]args){
列表值=数组。asList(“A”、“B”、“C”);
/*
*显然,您希望每次迭代输出2个值,
*这意味着您必须调整条件以迭代到
*倒数第二个索引(因为访问i+1)
*/
对于(int i=0;i
不需要迭代器,我强烈建议不要只使用
List
(原始类型),而要使用List
(指定项目类型)。如果使用Java 8或更高版本,还可以尝试:
public static void main(String[] args) {
List<String> values = Arrays.asList("A", "B", "C");
IntStream.range(0, values.size() - 1)
.forEach(i -> System.out.println(values.get(i) + ", " + values.get(i + 1)));
}
publicstaticvoidmain(字符串[]args){
列表值=数组。asList(“A”、“B”、“C”);
IntStream.range(0,values.size()-1)
.forEach(i->System.out.println(values.get(i)+“,“+values.get(i+1));
}
这里使用的是从0
(包含)循环到values.size()-1
(独占)的流,之后用于每个接受消费者的一个参数(在本例中为循环整数),然后只打印结果。我知道它几乎和迭代循环一样,但我想证明它也可以这样做
祝你好运 简单地将以前的值存储在本地变量中如何:
List<String> values = Arrays.asList("A", "B", "C");
Iterator<String> it = values.iterator();
if (it.hasNext()) {
String start = it.next();
for(String end = null; it.hasNext(); start = end) {
end = it.next();
}
}
List values=Arrays.asList(“A”、“B”、“C”);
迭代器it=values.Iterator();
if(it.hasNext()){
字符串start=it.next();
for(字符串end=null;it.hasNext();start=end){
end=it.next();
}
}
您的问题是什么?您想从每个索引中只获取第一个和第二个值,还是当前和下一个值(最后一个除外)?我想成对获取第一个和第二个值。然后第二个和第三个作为另一对。那么您想要一个大小为2的滑动窗口吗?您可以在if
块内声明end
并将其初始化为it.next()
。
public static void main(String[] args) {
List<String> values = Arrays.asList("A", "B", "C");
IntStream.range(0, values.size() - 1)
.forEach(i -> System.out.println(values.get(i) + ", " + values.get(i + 1)));
}
List<String> values = Arrays.asList("A", "B", "C");
Iterator<String> it = values.iterator();
if (it.hasNext()) {
String start = it.next();
for(String end = null; it.hasNext(); start = end) {
end = it.next();
}
}