Java 扩展列表的ArrayList
为什么这样做是不可能的Java 扩展列表的ArrayList,java,list,arraylist,Java,List,Arraylist,为什么这样做是不可能的 RowList<List<Value>> extends ArrayList<List<Value>> 行列表扩展了ArrayList 还有,如何做到这一点 RowList<Value> extends ArrayList<List<Value>> 行列表扩展了ArrayList 我正在尝试实现一个列表以用于数据库,并希望扩展数组列表,以便能够检查.add(),.set()等方法是
RowList<List<Value>> extends ArrayList<List<Value>>
行列表扩展了ArrayList
还有,如何做到这一点
RowList<Value> extends ArrayList<List<Value>>
行列表扩展了ArrayList
我正在尝试实现一个列表
以用于数据库
,并希望扩展数组列表
,以便能够检查.add(),.set()
等方法是否违反数据库
的要求(不添加具有相同键的两行等)。我意识到这可能不是实现数据库的最佳方式,但这是大学的一项任务,要求我们这样做
编辑:使用第二个选项(编译),如何访问RowList类保存的列表中的值?以下两行是相同的(对于编译器),即使您有一个名为Value
的类,这也是正确的,因为命名参数将屏蔽类类型
class RowList<Value> extends ArrayList<List<Value>>
class RowList<T> extends ArrayList<List<T>>
其中,Value
是代码库中的自定义对象。然后在代码的其他地方,您可以执行以下操作:
RowList rl = new RowList();
rl.add(new Value(...));
Value v = rl.get(i);
编辑:
前面的示例假设值
类是数据的输入行。相反,如果它是单个数据项,并且该行由列表表示,那么它将更像以下内容:
public class RowList extends ArrayList<List<Value>> {
@Override
public boolean add(List<Value> e) {
// TODO Custom code to check and what not
return super.add(e);
}
}
RowList rl = new RowList();
List<Value> row = new ArrayList<Value>();
row.add(new Value(...));
rl.add(row);
List<Value> rowGet = rl.get(i);
公共类行列表扩展了ArrayList{
@凌驾
公共布尔加法(列表e){
//TODO要检查的自定义代码以及不检查的内容
返回super.add(e);
}
}
行列表rl=新行列表();
列表行=新的ArrayList();
行。添加(新值(…);
rl.添加(行);
List rowGet=rl.get(i);
行列表扩展了ArrayList
怎么样?@Supericy这很好,是的,但不是我想做的。首先为什么要扩展ArrayList
?看起来像是代码气味。顺便说一句,如果您不想在集合中重复项,请使用@luigimendoza:问题是以下代码不起作用:import java.util.List;类A{}类C扩展了{},但这段代码可以工作:import java.util.List;类A{}类C扩展了{}是的,值在我的代码中是一个对象。使用类RowList扩展ArrayList声明,如何访问RowList中的值?
RowList rl = new RowList();
rl.add(new Value(...));
Value v = rl.get(i);
public class RowList extends ArrayList<List<Value>> {
@Override
public boolean add(List<Value> e) {
// TODO Custom code to check and what not
return super.add(e);
}
}
RowList rl = new RowList();
List<Value> row = new ArrayList<Value>();
row.add(new Value(...));
rl.add(row);
List<Value> rowGet = rl.get(i);