2013-06-28 3 views
0

Я хочу сравнить строки в списке массивов, взятых из моей базы данных, и объединить их. Вот код, который собирает данные из моей базы данных.Android: Сравнить строки в списке массивов и объединить их

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

и вот код, чтобы разместить их в списке ..

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

Это все работает отлично, но если есть более чем одна запись, которая является такой же, я в конечном итоге со списком того же вещь (если это имеет смысл !?).

Пример: если список вышел, как {"01/01/13", "02/01/13", "01/01/13", "03/02/13", "01/01/13"} Я пытаюсь сделать из приходят как {"01/01/13", "02/01/13", "03/02/13"} так, что все запись одного и того же значения были собраны в одно целое.

Любые помощь или идеи очень ценятся.

ответ

0

Просто используйте Набор вместо списка.

HashSet предоставит вам уникальные строки, вместо этого список может содержать одно и то же событие.

0

Почему бы вам просто не использовать HashSet<String>?

Пример:

List<String> dates = info.getData2List(); 
Set<String> uniqueDates = new HashSet<String>(dates); 
0

Вы можете использовать HashSet вместо ArrayList.

, потому что в вашем случае будет иметь следующие преимущества

  1. вступающих два набора будет проще использованияКонтактная addAll method
  2. Там нет никаких шансов иметь повторяющиеся значения
0

Вам нужна коллекция Set класс, в основном то, что делает «Set», сохраняя только уникальные значения, и если вы попытаетесь установить новое значение, которое уже существует в коллекции, оно просто проигнорирует, убедитесь, что вы переопределяете равные и метод hashCode, а также, если вы Арканзас е пытается сохранить свой собственный объект, посмотрите на документацию для получения дополнительной информации о том, как это работает ..

http://docs.oracle.com/javase/6/docs/api/java/util/Set.html

С уважением!