如何将ArrayList <object>转换为ArrayList <string>或ArrayList <timestamp>?</timestamp> </string> </object>

时间:2014-01-18 07:37:09

标签: java list collections arraylist

程序::

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));
 }

这是我尝试的程序。 但是我想对字符串和时间戳使用相同的列表 这有可能吗?如果是的话怎么样?

2 个答案:

答案 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);