从Java中的数组列表中删除连续的重复对象

问题描述:

我有一个连续的重复行的整数数组列表。 我想输出与以前不一样的每个号码。从Java中的数组列表中删除连续的重复对象

样品:1 3 3 3 2 2 1 2 2 3 3 3

所需的输出:1 3 2 1 2 3

我应该怎么办呢?

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

+1

你有什么已经写? – lared 2015-02-12 01:11:33

+1

问题应该包括你迄今为解决问题所做的工作的总结,以及你解决问题的困难的描述。请[编辑]你的问题,并包括你试图解决这个问题。更多信息[here](http://mattgemmell.com/what-have-you-tried/) – Pshemo 2015-02-12 01:14:43

可能想法比较元素彼此:

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; 
} 
+0

你是一名奇迹工作者。我一直试图比较input.get(i)和input.get(i + 1),并且它一直在超出范围。我没有想过要添加一个,然后与之前进行比较。 – 2015-02-12 02:53:54

+0

哈哈!只是有创意。 :-) – shirrine 2015-02-12 03:45:26