как получить значение из oject referece в Java - PullRequest
0 голосов
/ 02 октября 2019

Итак, у меня есть ArrayList из ArrayLists, и я использую, например, outer.get(0), чтобы получить первый ArrayList, но я только получаю ссылку на объект, я новичок в java, пожалуйста, помогите мне. Вот мой код, если вы заинтересованы

public class MyRecursiveTask extends RecursiveTask<List<Integer>> {

    private List<Integer> numbers;

    public MyRecursiveTask(List<Integer> numbers) {
        this.numbers = numbers;
    }

    protected List<Integer> compute() {

        //if work is above threshold, break tasks up into smaller tasks
        if(this.numbers.size() > 2) {
            System.out.println("Splitting workLoad : " + this.numbers.size());

            List<MyRecursiveTask> subtasks = new ArrayList<MyRecursiveTask>();
            subtasks.addAll(createSubtasks());

            for(MyRecursiveTask subtask : subtasks){
                subtask.fork();
            }

            for(MyRecursiveTask subtask : subtasks) {
                subtask.join();
            }
            System.out.println(subtasks.get(0));
            subtasks.get(1);

            return numbers;

        } else {
            System.out.println("Doing workLoad myself: " + this.numbers.size());
            bubbleSort(numbers);
        }
        return numbers;
    }

    private List<MyRecursiveTask> createSubtasks() {
        List<MyRecursiveTask> subtasks = new ArrayList<MyRecursiveTask>();
        List<Integer> list1 = numbers.subList(0,numbers.size()/2);
        List<Integer> list2 = numbers.subList(numbers.size()/2, numbers.size());

        MyRecursiveTask subtask1 = new MyRecursiveTask(list1);
        MyRecursiveTask subtask2 = new MyRecursiveTask(list2);

        subtasks.add(subtask1);
        subtasks.add(subtask2);

        return subtasks;
    }

1 Ответ

0 голосов
/ 03 октября 2019

Вам нужно добавить метод getter, чтобы получить list из ссылки на объект MyRecursiveTask,

public class MyRecursiveTask extends RecursiveTask<List<Integer>> {

    private List<Integer> numbers;

    public List<Integer> getNumbers() {
        return numbers;
    }

    ...
}

. Вы можете получить значение следующим образом,

List<MyRecursiveTask> outer = ...
MyRecursiveTask object = outer.get(0);
List<Integer> value = object.getNumbers(); // This is the value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...