gpt4 book ai didi

java - java中如何从对象引用中获取值

转载 作者:行者123 更新时间:2023-12-01 23:54:32 26 4
gpt4 key购买 nike

所以我有 ArrayList 的 ArrayList,并且我正在使用 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;
}

最佳答案

您正在存储一个列表对象,因此当您想要访问该列表中的第一个元素时,您将获得对存储在列表中的对象的引用,因此为了访问该列表中的列表您需要使用 object.value 属性并查看列表的对象。

要获取主列表中每个列表的内容,您可以执行类似的操作,

for(MyRecursiveTask sub : subtasks) 
System.out.println(sub.numbers);

编辑#1我已经在在线编译器中测试了这个程序,它运行良好,但对您的代码做了一些更改。 (进行更改是为了删除不必要的内容,而不是因为它们会导致错误)。

public class MyClass {
public static void main(String args[]) {
//Driver to test your code
ArrayList<Integer> arr = new ArrayList<>();
arr.add(1);arr.add(2);arr.add(3);
MyRecursiveTask e = new MyRecursiveTask(arr);
e.createSubtasks();
}
}

class MyRecursiveTask {

private List<Integer> numbers;

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

public 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);
//Below is the line that does all the work
for(MyRecursiveTask sub : subtasks) System.out.println(sub.numbers);

return subtasks;
}
}

输出

[1]
[2, 3]

关于java - java中如何从对象引用中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58208883/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com