从ArrayList中检索随机对象

时间:2017-02-21 17:47:02

标签: java android arraylist

下面的方法是我用来填充数组的方法。但是我想从类型为deals_information的ArrayList中返回一个随机Deals_Information对象,但我不太确定如何。

    public void populateArray() {

    databaseReference.child("FruitDeals").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            Iterable<DataSnapshot> children = dataSnapshot.getChildren();
            final ArrayList<Deals_Information> myArray = new ArrayList<>();

            for (DataSnapshot child : children) {
                Deals_Information deals_information = child.getValue(Deals_Information.class);
                myArray.add(deals_information);
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}

2 个答案:

答案 0 :(得分:1)

使用Random从0的范围和集合的size-1中获取随机int。

从Java 1.7开始,推荐的Random实现是ThreadLocalRandom。

private int randomInt(final int from, final int to) {
    return ThreadLocalRandom.current().nextInt(from, to);
}

答案 1 :(得分:0)

因为ArrayLists具有get()函数,所以执行此操作的方法是首先使用math.random()函数生成随机数,然后使用ArrayList的get()函数在该随机生成的索引处调用该对象。