当前位置: 首页 > 知识库问答 >
问题:

如何对两个json数组进行时间排序

能修谨
2023-03-14

我想按时间对两个json数组stream和stream 1进行排序。

每个数组中时间最近的记录将排在最前面。时间的格式类似于分钟前、天前的值

这是我到目前为止的代码

 parseJsonFeed(JSONObject response) {
            try {
                String stream = pref.getStream();
                JSONArray feedArray = response.getJSONArray(stream);


                for (int i = 0; i < feedArray.length(); i++) {
                    JSONObject feedObj = (JSONObject) feedArray.get(i);

                    FeedItem item = new FeedItem();
                    item.setId(feedObj.getInt("id"));
                    item.setName(feedObj.getString("title"));

                    // Image might be null sometimes
                    String image = feedObj.isNull("image") ? null : feedObj
                            .getString("image");
                    item.setImge(image);
                    item.setStatus(feedObj.getString("status"));
                    item.setProfilePic(feedObj.getString("profilepic"));
                    item.setTimeStamp(feedObj.getString("created_at"));

                    // url might be null sometimes
                    String feedUrl = feedObj.isNull("url") ? null : feedObj
                            .getString("url");
                    item.setUrl(feedUrl);

                    feedItems.add(item);
                }

                // notify data changes to list adapater
                listAdapter.notifyDataSetChanged();
            } catch (JSONException e) {
                e.printStackTrace();
            }

            String stream2 = pref.getStream2();

            if (!stream2.contentEquals("none")) {

                try {

                    JSONArray feedArray = response.getJSONArray(stream2);


                    for (int i = 0; i < feedArray.length(); i++) {
                        JSONObject feedObj = (JSONObject) feedArray.get(i);

                        FeedItem item = new FeedItem();
                        item.setId(feedObj.getInt("id"));
                        item.setName(feedObj.getString("title"));

                        // Image might be null sometimes
                        String image = feedObj.isNull("image") ? null : feedObj
                                .getString("image");
                        item.setImge(image);
                        item.setStatus(feedObj.getString("status"));
                        item.setProfilePic(feedObj.getString("profilepic"));
                        item.setTimeStamp(feedObj.getString("created_at"));

                        // url might be null sometimes
                        String feedUrl = feedObj.isNull("url") ? null : feedObj
                                .getString("url");
                        item.setUrl(feedUrl);

                        feedItems.add(item);
                    }

                    // notify data changes to list adapater
                    listAdapter.notifyDataSetChanged();
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

        }

我需要对数组进行排序,首先显示每个数组中最近的项目,然后是下一个最近的项目,依此类推。

共有1个答案

张姚石
2023-03-14

使FeedItem类实现可比较或比较器(参考此)。然后调用:

Collections.sort(feedItem);

在调用novfyDataSetChanged()之前

 类似资料:
  • 我正在尝试使用Java对由整数对字符串组成的数组进行排序 输入为: 所需的输出是:

  • 我有一个JSON数组: 结果为“数据”: 我怎么能有一个升序按“datesurder”? THX

  • 我被要求做一个按升序对数组进行排序的程序。我这样做了: 输入不会超过10个数字。这可以用比我这里更少的代码完成吗?我希望代码尽可能短。任何帮助都将不胜感激。谢谢!

  • Leetcode#167几乎与#1相同,但为什么我不能只添加一个if条件? 函数twoSum应该返回两个数字的索引,使它们相加为目标,其中index1必须小于index2。 注: 返回的答案(index1和index2)不是从零开始的。您可以假设每个输入都有一个解决方案,并且不能两次使用同一个元素。

  • 因此,我试图学习如何为类项目排序数组。我想知道如何对一个数组进行排序,从而对另一个数组进行排序。在下面的代码中,我可以对年份数组进行排序,但我如何才能使更改这一数组将名称和艺术家数组都更改为它们排列的数组呢?此外,如果你有任何建议,让代码对眼睛不那么苛刻,请告诉我,我正在努力掌握这个概念。

  • 问题内容: 我有这样的数组 如何按return_fare asc和one_way_fare asc排序值? 我尝试了array_multisort()但最终却得到了混乱的数据。 Asort仅适用于一维数组,我需要按两个或多个值进行排序,我如何才能像SQL中那样实现此功能,按field1 asc,field2 asc排序? 问题答案: 是正确的函数,您必须以某种方式搞砸了: 如果您在PHP的手册页上