我想使用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接口方法将是一个很大的问题。
答案 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);