【问题标题】:Issue comparing two arraylist with ParseObject将两个数组列表与 ParseObject 进行比较的问题
【发布时间】:2019-08-11 17:34:15
【问题描述】:

我在这方面遇到了很大的困难。我用 CalendarView 制作了一个 Gridview,它在每个位置都分配了一个日期。我用这段代码迭代它..

for (int n = 0; n < mnthlength; n++) {

        itemvalue = df.format(pmonthmaxset.getTime());
        Log.v("Calendar","look at this----->"+itemvalue);
        pmonthmaxset.add(GregorianCalendar.DATE, 1);
        day_string.add(itemvalue);

    }

我有另一个代码用于返回另一个数组列表的方法...

private List<ParseObject>getEventListFromParse(){

    ParseQuery<ParseObject> query = ParseQuery.getQuery("Event");
    query.whereEqualTo("Comercial", ParseUser.getCurrentUser().getObjectId());
    query.include("Fecha");

    query.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> objects, ParseException e) {
            if (e == null) {
                for (ParseObject obj:objects
                ) {

                    eventArraylist=new ArrayList<>();
                    eventArraylist.add(obj);


                }
            } else {
                Log.d("score", "Error: " + e.getMessage());
            }
        }
    });
    return eventArraylist;
}

所以我们现在有

List<String> day_string;

List<ParseObject> eventArraylist;

这两者都有像字符串 yyyy-mm-dd 这样的元素。我需要比较从 0 开始遍历每个位置,并告诉我是否在 day_string 的第一个元素中(例如今天是 2019-03-20),如果 eventArraylist 上有匹配的日期。

我检查了一些堆栈帖子,但可以实现它们。 How to compare two types of arraylist in android

【问题讨论】:

    标签: android for-loop arraylist parse-platform parse-android-sdk


    【解决方案1】:

    看起来您正在尝试将String 与永远不会飞的ParseObject 对象进行比较。为了正确起见,您可能需要考虑将Date 存储在列表中或在比较之前将对象解析为Date

    当你这样做时,因为 Date 实现了 Comparable,它就像

    一样简单

    date1.compareTo(date2);

    您还可以遍历day_string 并检查元素是否存在使用

    eventArraylist.contains(desiredElement)

    【讨论】:

    • 感谢@Sushant 的回复,但如果我在每个列表中有 1000000 个数据,您能帮我比较两个列表吗?
    • 嗯,这不是您最初的问题,但我会尽力回答,记录数、操作类型(读/写)和空间限制是确定正确数据结构的主要因素。与其他替代方案相比,ArrayList 仍然非常紧凑。因此,您可以继续使用 ArrayList 并可能使用 Collection.sort(list) 对记录进行排序,然后使用诸如 Collections.binarySearch(list, key) 之类的实用程序进行搜索。只要您的 JVM 有足够的内存,我认为在 ArrayList 中存储 100 万条记录没有任何问题。
    • 您可能还想查看 Apache Common library 的实用程序来比较列表,例如 commons.apache.org/proper/commons-collections/javadocs/…
    • 嗨@Sushant你能帮我吗?我正在做一些研究,我发现我可以比较两个列表在另一个里面做一个for循环。但我不知道怎么做以及在里面显示什么。 – Felipe Franco 昨天删除
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    相关资源
    最近更新 更多