0

さて、以下は私の ParseQuery です。このコンテキストで Collections.shuffle() を使用して、ほとんどのレコードをランダムな順序で表示するにはどうすればよいですか? たとえば、常にリストの一番上に表示したい特定のレコードがありますが、その特定のレコード以外のすべてをその下にランダムな順序で表示したいと考えています。

2 つの異なる ArrayList を設定して、1 つの特定のレコードを一方に表示し、残りを他方に表示することは避けたいと思いますが、それは常にオプションです。

objectId に基づいてシャッフルから特定のレコードを削除するようなことはできますか?

brandlist = new ArrayList<SuggestedBrand>();
        try {
            // Locate the class table named "SuggestedUser" in Parse.com
            ParseQuery<ParseObject> query = new ParseQuery<ParseObject>(
                    "SuggestedBrand");

            ob = query.find();
            Collections.shuffle(ob);
            for (ParseObject author : ob) {
                ParseFile image = (ParseFile) author.get("brandImage");
                SuggestedBrand map = new SuggestedBrand();
                map.setRank((String) author.get("author"));
                map.setUsername((String) author.get("username"));
                map.setFlag(image.getUrl());
                map.setUserID((String) author.get("userId"));
                brandlist.add(map);
            }
        } catch (ParseException e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }
        return null;
    }
4

2 に答える 2

1

を使用する直前に 1 つの興味深い項目を削除 (および変数に格納)し、メソッドを使用した後にその項目を先頭の にCollections.shuffle(...)挿入し直してはどうでしょうか?ArrayList

于 2015-10-17T19:43:56.610 に答える
0

This takes the item of interest and separates it from the randomization process. It then places it at the top of the list:

@Override
        protected Void doInBackground(Void... params) {
            // Create the array
            worldpopulationlist = new ArrayList<SuggestedUser>();
            try {
                final ParseQuery<ParseObject> interesting = new ParseQuery<ParseObject>("SuggestedUser");
                interesting.whereEqualTo("userId", "pYYMsL9RWW");
                ParseObject interesting2 = interesting.getFirst();
                // Locate the class table named "SuggestedUser" in Parse.com
                final ParseQuery<ParseObject> query = new ParseQuery<ParseObject>(
                        "SuggestedUser");
                ob = query.find();
                ob.remove(interesting2);
                Collections.shuffle(ob);
                ob.add(interesting2);
                Collections.reverse(ob);
                for (ParseObject author : ob) {
                    ParseFile image = (ParseFile) author.get("brandImage");
                    SuggestedUser map = new SuggestedUser();
                    map.setRank((String) author.get("author"));
                    map.setUsername((String) author.get("username"));
                    map.setFlag(image.getUrl());
                    map.setUserID((String) author.get("userId"));
                    worldpopulationlist.add(map);
                }
            } catch (ParseException e) {
                Log.e("Error", e.getMessage());
                e.printStackTrace();
            }
            return null;
        }
于 2015-10-18T00:01:39.683 に答える