Мой код запускает алгоритм в массиве и сохраняет результаты в ArrayList. Проблема в том, что я не могу получить доступ к содержимому ArrayList для последующей обработки. Хотя мой настоящий код состоит из тысяч строк, я поймал проблему и заново создал проблему в следующих сегментах короткого кода. Вы можете взять три класса ниже и запустить их в своей IDE без изменений, чтобы воспроизвести проблему самостоятельно. Как вы можете видеть, он заполняет ArrayList в makeArrayList.java, но содержимое ArrayList впоследствии не отображается в getArrayList.java.
Может кто-нибудь показать мне, как исправить приведенный ниже код, чтобы содержимое ArrayList стало видимым / пригодным для использования в getArrayList.java и в myGUI.java?
Вот код для трех классов:
Код для myGUI.java:
package arrayListPractice;
import java.awt.Dimension;
import javax.swing.JFrame;
public class myGUI extends JFrame {
public myGUI() {
super("test GUI");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setPreferredSize(new Dimension(300, 200));
getArrayList getArrList = new getArrayList();
getArrList.getPeaks();
this.pack();}
public static void main(String args[]) {
myGUI myFrame = new myGUI();
myFrame.setVisible(true);}}
Код для getArrayList.java:
package arrayListPractice;
import java.util.*;
public class getArrayList {
public static ArrayList<Integer> PeakList;
int myLength = 3500;
double[] myArray=new double[myLength];
public ArrayList<Integer> getPeaks(){
for(int h=0;h<myLength;h++){myArray[h]=Math.sqrt((double)h);}
PeakList = new makeArrayList(myArray,myLength);
System.out.println("in getArrayList.getPeaks, PeakList.size() is: "+PeakList.size());
return PeakList;}}
Код для makeArrayList.java:
package arrayListPractice;
import java.util.*;
public class makeArrayList extends ArrayList<Integer> {
ArrayList<Integer> myArrayList= new ArrayList<Integer>();
public makeArrayList(double[] myArray, int arrayLength) {
// NOTE: My actual code does many transformations to myArray. The resulting myArrayList
// contains only 1/1000 of the points in myArray. This code is just simplified for debugging.
for(int i=0;i<arrayLength;i++){myArrayList.add((int)Math.pow(myArray[i],2));}
System.out.println("in makeArrayList, PeakList.size() is: "+myArrayList.size());}}