Как получить конкретные данные из массива

Мой вопрос заключается в том, когда я храню данные в массив из базы данных sqlite, как я могу получить его из определенной позиции, скажем,моя база данных содержит «еду, напитки, закуски», как я могу получить строку «закуски» из массива.

 String CatNameQuery = "SELECT * FROM Category";
    db = new DBController(MainActivity.this);
    SQLiteDatabase db3 = db.getReadableDatabase();
    final Cursor cursor2 = db3.rawQuery(CatNameQuery, null);
    {
        List<String> array = new ArrayList<String>();

        while(cursor2.moveToNext()){
            String uname = cursor2.getString(cursor2.getColumnIndex("CategoryName"));
            array.add(uname); 

    }

5 ответов

  1. Вам нужно перебрать список, чтобы найти искомый элемент.

    Например:

    for (String s : array) {
        if (s.equals("snack")) {
            System.out.println("Found snack");
        }
    }
    

    Вы также можете использовать containsметод, чтобы проверить, содержит ли список » закуска.»

    if (array.contains("snack")) {
        System.out.println("Found snack");
    }
    

    Ресурс: ArrayList

  2. List<String> array = new ArrayList<String>();
    array.add("food");
    array.add("drinks");
    array.add("snack");
    String result="";
    if (array.contains("snack"))   // avoid null pointer exception
    {
    int index =array.indexOf("snack") //find the index of arraylist
    
    result=array.get(index); 
    }
    
  3. Используйте предложение WHERE в запросе SELECT. Например:

    "SELECT * FROM Category WHERE CategoryName='snacks'"
    

    Это заполнит ваш массив только элементами под категорией «закуски».

  4. Вы можете найти его, зациклив массив

    List<String> arrobj= new ArrayList<String>();
    arrobj.add("food");
    arrobj.add("drinks");
    arrobj.add("snack");  
    for (String value : arrobj) {
    if (value.equals("snack")) {
        System.out.println("Here is the snack");
    }
    }  
    
  5. if (array.size() > 0) {
        int index = 0;
        if (array.contains("Snacks")) {
            index = array.indexOf("Snacks");
            System.out.println(array.get(index));
        }
    }