程序::
ArrayList<Object> DataList = new ArrayList<Object>();
ArrayList<BigDecimal> valueList = new ArrayList<BigDecimal>();
ArrayList<String> stringList = new ArrayList<String>();
ArrayList<Timestamp> dateList = new ArrayList<Timestamp>();
List<ArrayList<Object>> listDatas = getDetailsfromDB();
// Here we get list like
// [[12,apple],[25, grape],[1,orange]] or
// [[12,12/12/2013],[25, 11/11/2013],[1,10/10/2013]]
for( int i = 0; i < listDatas.size(); i++)
{
List<Object> temp = listDatas.get(i);
valueList.((BigDecimal) temp.get(0));
if( temp.get(1) instanceof String)
stringList.add((String)temp.get(1));
else if( temp.get(1) instanceof Timestamp)
dateList.add((Timestamp)temp.get(1));
}
这是我尝试的程序。 但是我想对字符串和时间戳使用相同的列表 这有可能吗?如果是的话怎么样?
答案 0 :(得分:0)
最简单的方法是循环并将每个项目转换为新的字符串列表。
ArrayList<Object> list = new ArrayList<Object>();
list.add(1);
list.add("Java");
list.add(3.14);
List<String> strings = new ArrayList<String>();
for (Object object : list) {
strings.add(object != null ? object.toString() : null);
}
答案 1 :(得分:0)
您必须遍历列表中的所有元素,然后必须将单个元素转换为String。您可以使用Object toString()方法来实现此目的。
最好是创建一个单独的方法,将对象转换为String和Timestamp。 Object是Java中所有类的父类,因此可以包含任何对象类型。您可以检查该方法中的对象类型,因此可以相应地创建String和Date对象。
您可以使用以下代码将对象元素转换为Timestamp -
Date date = new SimpleDateFormat(“MMMM d,yyyy”,Locale.ENGLISH).parse(string);