从Java中的arraylist中删除连续的重复项

Ran*_*nes 3 java integer list duplicates

我有一个连续重复行的整数arraylist.我想输出与之前不同的每个数字.

样本:1 3 3 3 2 2 1 2 2 3 3 3

期望的输出:1 3 2 1 2 3

我该怎么做?

我本质上是为任何文本文件输入创建一个倒置的单词索引.我有一个文件/缓冲读取器逐行读取多个文本文件并将每一行放入一个2d数组,第一列是.split字,第二列是从中获取单词的文件名.然后我有一个for循环来获取所有文件中出现特定单词的频率并将其添加到另一列.然后我将每一列复制到他们自己的arraylist中.我将一个单词arraylist添加到一个hashset中以删除重复项.但我想只删除频率arraylist的连续重复.

小智 6

将元素相互比较的可能想法:

public static ArrayList<Integer> noConsecutiveDups(ArrayList<Integer> input) {

  ArrayList<Integer> newList = new ArrayList<Integer>();

  // Always add first value
  newList.add(input.get(0));

  // Iterate the remaining values
  for(int i = 1; i < input.size(); i++) {
    // Compare current value to previous
    if(input.get(i-1) != input.get(i)) {
       newList.add(input.get(i));
    }
  }

  return newList;
}
Run Code Online (Sandbox Code Playgroud)