为每个ArrayList条目添加一些属性

时间:2014-08-02 14:19:50

标签: java arraylist

我想使用ArrayList作为示例,但除了只保留一个条目,我想存储其他信息:“写入”时间,一些标志可能。我可以扩展我要存储的课程,但我希望它成为榜单。我想也许可以做一些像

这样的事情
public class PropertirizedArrayList<E> implements List<E> {

private static class TupleContainer<E>{
    public E mainValue;
    public Long hidingTime;
    public Boolean flag;
}

private ArrayList<TupleContainer<E>> list = new ArrayList<>();

private ArrayList<TupleContainer<E>> delegate(){
    return list;
}
//etc...
}

但我认为重新实现所有List接口方法将是一个很大的问题。

2 个答案:

答案 0 :(得分:1)

您只需使用List<TupleContainer<SomeType>>即可。我认为不需要使用PropertirizedArrayList包装List。

如果你有充分的理由使用包装类(这样的原因将是你的包装列表实现的附加功能),你就不必重新实现现有的List方法。

您的类中包含List成员,因此您可以将类的每个方法委派给列表。

例如:

public TupleContainer<E> get (int index) 
{
    return list.get (index);
}

或者,如果您不想公开TupleContainer:

public E get (int index) 
{
    return list.get (index).mainValue;
}

答案 1 :(得分:0)

试试这个......

private class TupleContainer<E>{
    public E mainValue;
    public Long hidingTime;
    public Boolean flag;
}

List<TupleContainer<YourType>> list=new ArrayList<TupleContainer<YourType>>();

TupleContainer<YourType> tc=new TupleContainer<YourType>();

tc.mainValue=value;
tc.hidingTime=value;
tc.flag=value;
list.add(tc);