Java Android:比较数组列表中的字符串并合并它们

Java Android:比较数组列表中的字符串并合并它们,java,android,arraylist,arrays,Java,Android,Arraylist,Arrays,我想比较从数据库中获取的数组列表中的字符串,并将它们连接在一起。。 下面是从我的数据库收集数据的代码 public List<String> getData2List() { String[] columns = new String[]{ KEY_ROWID, KEY_DATE, KEY_NAME, KEY_PRICE}; Cursor c = ourDatabase.query(DATABASE_TABLE, columns, "1", null, null, n

我想比较从数据库中获取的数组列表中的字符串,并将它们连接在一起。。 下面是从我的数据库收集数据的代码

public List<String> getData2List() {
    String[] columns = new String[]{ KEY_ROWID, KEY_DATE, KEY_NAME, KEY_PRICE};
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, "1", null, null, null, null);

    List<String> results = new ArrayList<String>();
    int iCM = c.getColumnIndex(KEY_DATE);

    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
        results.add(c.getString(iCM));
    }
    return results;
}
公共列表getData2List(){ String[]columns=新字符串[]{KEY\u ROWID,KEY\u DATE,KEY\u NAME,KEY\u PRICE}; 游标c=ourDatabase.query(数据库表,列,“1”,null,null,null,null); 列表结果=新建ArrayList(); int iCM=c.getColumnIndex(键日期); for(c.moveToFirst();!c.isAfterLast();c.moveToNext()){ 添加(c.getString(iCM)); } 返回结果; } 下面是将它们放入列表的代码

Database info = new Database(this);
    info.open();        

    List<String> dates = info.getData2List();
    lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dates));

    info.close();
Database info=新数据库(此数据库);
info.open();
列表日期=info.getData2List();
lv.setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_item_1,日期));
info.close();
这一切都很好,但如果有一个以上的条目是相同的,我最终会得到一个相同内容的列表(如果这是有意义的!?)

例如: 如果列表显示为
{“01/01/13”、“02/01/13”、“01/01/13”、“03/02/13”、“01/01/13”}
我试图让结果像
{“01/01/13”,“02/01/13”,“03/02/13”}
因此,相同值的所有条目都已编译为一个条目


非常感谢任何帮助或想法。

只需使用集合而不是列表


哈希集将为您提供唯一的字符串,而列表可以包含相同的匹配项。

为什么不使用
哈希集呢

例如:

List<String> dates = info.getData2List();
Set<String> uniqueDates = new HashSet<String>(dates);
List dates=info.getData2List();
Set uniqueDates=新哈希集(日期);
您可以使用代替ArrayList

因为在你的情况下,你将有以下优势

  • 加入两组将更容易使用
  • 不可能有重复的值

  • 您需要一个集合类,“Set”的基本功能是只存储唯一的值,如果您试图设置集合中已存在的新值,它将忽略,请确保覆盖equals和hashCode方法,以防您试图存储自己的对象,有关其工作原理的更多信息,请参阅文档

    问候