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方法,以防您试图存储自己的对象,有关其工作原理的更多信息,请参阅文档
问候