我有一个整数类型的arraylist。该列表包含一些值 在某些时候,列表将连续包含相似的值(3个值) 我需要找到3个相似元素出现的位置。
例如:
ArrayList<Integer> int_values=new ArrayList<Integer>();
int_values.add(10);
int_values.add(20);
int_values.add(30);
int_values.add(10);
int_values.add(10);
int_values.add(10);
从第3到第5位可以看出,有类似的值
所以我需要检索位置5.
此系列重复的相似元素也只会出现一次。
我希望我能够解释这个情景。
答案 0 :(得分:1)
您可以执行以下操作,
public static List<Integer> findConsequtive3(ArrayList<Integer> int_values) {
Integer[] arrayItems = (Integer[]) int_values.toArray(new Integer[0]);
List<Integer> consequetive = new ArrayList<Integer>();
int count = 1;
for (int i = 1; i < arrayItems.length; i++) {
if (arrayItems[i - 1] == arrayItems[i]) {
count++;
if (count == 3) {
consequetive.add(i + 1); // Since array is zero indexed adding 1
count = 0; // resetting count
}
}
}
return consequetive;
}
答案 1 :(得分:0)
public static void main(String[] args) {
ArrayList<Integer> int_values = new ArrayList<Integer>();
int_values.add(10);
int_values.add(20);
int_values.add(30);
int_values.add(10);
int_values.add(10);
int_values.add(10);
int count = 0;
for (int i = 0; i < int_values.size() - 2; i++) {
if (int_values.get(i) == int_values.get(i + 1))
if (int_values.get(i + 1) == int_values.get(i + 2))
System.out.println(i+2);
}
}