物流订单轨迹去重问题

有一个项目是查出物流订单状态轨迹,由于状态可能重复往回走的情况,类似如下结构
List dataList = new ArrayList();
dataList.add("新建");
dataList.add("审核");
dataList.add("提交");
dataList.add("待完工");
dataList.add("待处理");
dataList.add("已接收");
dataList.add("已确认");
dataList.add("已分配");
dataList.add("已分配");
dataList.add("已分配");
dataList.add("配送中");
dataList.add("配送中");
dataList.add("已分配");
dataList.add("已分配");
dataList.add("配送中");
dataList.add("配送中");

现在想取到这样的结构,
List result = new ArrayList();
result.add("新建");
result.add("审核");
result.add("提交");
result.add("待完工");
result.add("待处理");
result.add("已接收");
result.add("已确认");
result.add("已分配");
result.add("配送中");
result.add("已分配");
result.add("配送中");

    把相同阶段的状态去重操作,但是不同阶段的状态可以保留,请大神们给点思路!

记录当前阶段的状态?

遍历去除重复数据,每次添加时遍历list,如果没有的话就添加。

how about use LinkedList


import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class TestLinkedList {

    public static void main(String[] args) {

        List<String> dataList = new ArrayList<String>();
        dataList.add("新建");
        dataList.add("审核");
        dataList.add("提交");
        dataList.add("待完工");
        dataList.add("待处理");
        dataList.add("已接收");
        dataList.add("已确认");
        dataList.add("已分配");
        dataList.add("已分配");
        dataList.add("已分配");
        dataList.add("配送中");
        dataList.add("配送中");
        dataList.add("已分配");
        dataList.add("已分配");
        dataList.add("配送中");
        dataList.add("配送中");

        LinkedList<String> dataLinkedList = new LinkedList<String>();

        boolean addedFirstElement = false;
        for (int i = 0; i < dataList.size(); i++) {
            if (!addedFirstElement) {
                dataLinkedList.add(dataList.get(i));
                addedFirstElement = true;
            } else if (dataLinkedList.getLast() != dataList.get(i)) {
                dataLinkedList.add(dataList.get(i));
            }
        }

        for (int j = 0; j < dataLinkedList.size(); j++) {
            System.out.println(dataLinkedList.get(j));
        }
    }
}

output

新建
审核
提交
待完工
待处理
已接收
已确认
已分配
配送中
已分配
配送中