1

好的,我有这个

public static List<DataValue> result = new LinkedList<>();

public static class DataValue {
    protected final String first;
    protected final int second;

    public DataValue(String first, int second) {
        this.first = first;
        this.second = second;
    }
}

添加到列表...

    String first = "bob";
    int second = "50";
    result.add(new DataValue(first, second));

我试图从数据中获取一个随机字段,显示它,然后从列表中删除它,这样它就不会再次被使用

我该怎么做呢?

我目前在抓取数据方面的尝试并不顺利

System.out.println("第一个:"+DataValue.result.getFirst());

并且还尝试了 System.out.println("First: "+result.getFirst(DataValue));

我不知道如何抓住它,也找不到任何关于它的文章,感谢任何帮助

LinkedList 中大约有 5000 个条目,如果这有什么不同的话

4

2 回答 2

1

我不太明白你的问题,但你可以尝试这样的事情

Random randomGenerator;
int randomIndex = randomGenerator.nextInt( result.size() );
DataValue dataValue = result.get( randomIndex );
//... Show the fields ...
result.remove( randomIndex );`
于 2013-10-13T03:06:58.687 回答
0

这个怎么样?

import java.util.LinkedList;
import java.util.List;

public class MyClass {
    public static List<DataValue> result = new LinkedList<DataValue>();

    public static class DataValue {
        protected final String first;
        protected final int second;

        public DataValue(String first, int second) {
            this.first = first;
            this.second = second;
        }

        @Override
        public String toString(){
            return first + " " + second;
        }
    }

    public static void removeAndPrintRandom(){
        int index = (int)(Math.random() * result.size());
        System.out.println(result.remove(index));
    }
}

我刚刚向您展示了更好的方法来做到这一点。您可以编辑它并根据您的要求进行制作。

于 2013-10-13T03:14:18.137 回答