0

okay so i have this code and i would like to store the values of an array of integers intwholef[x] and store those values in the array wholelist[y]. the only problem is that the way i have it set up is that im taking the first three values of the array and storing them in intwholef[x] and then x is resetting as it passes on the the next line. a graphical representation is below

This is the contents of the file stored in an array of strings

intwholef[0] = 1 3 10
intwholef[1] = 2 4 15
intwholef[2] = 3 6 8
intwholef[3] = 4 7 3
intwholef[4] = 5 9 12

now what i WANT is those values to be stored like this.

wholelist[] = 1,3,10,2,4,15,3,6,8,4,7,3,5,9,12

and be accessible like

wholelist[2] * wholelist[5] = 150;

the problem that im running into is that im not able to save the values in a list like this, any ideas?

here is the whole code, the part im talking about is at the bottom

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;

public class project1
{
    @SuppressWarnings("null")
    public static void main(String[] args)
    {
        System.out.println("These are your following choices: ");
        System.out.println("1. First-Come First-Served (FCFS): ");
        System.out.println("2. Shortest Job Next (SJN): ");
        System.out.println("3. Shortest Remaining Time (SRT): ");
        System.out.println("4. Round Robin (RR) with time quantum = 4 ms: ");
        System.out.println("please enter your choice by entering 1, 2, 3, 4");
        Scanner in = new Scanner(System.in);
        int choice = in.nextInt();
        if(choice ==1)
        {
            System.out.println("your choice was first come first serve");
        }
        else if(choice == 2)
        {
            System.out.println("your choice was shortest job next");
        }
        else if(choice == 3)
        {
            System.out.println("your choice was shortest job remaining");
        }
        else if(choice == 4)
        {
            System.out.println("your choice was round robin (rr) with time quantum = 4 ms");
        }
        else
        {
            System.out.println("you entered an invalid choice");
        }
        BufferedReader file = null;

        System.out.println("Please enter the file path for your input");
        Scanner fp = new Scanner(System.in);
        String input = fp.nextLine();
        String fileloc;
        String[] wholef = null;
        int fline = 0;
        try 
        {
            file = new BufferedReader(new FileReader(input));
            fileloc = file.readLine();
            fline = Integer.parseInt(fileloc);  // this stands for file contents from the file to be read
            wholef = new String[fline];
            int i = 0;
            while((fileloc = file.readLine()) != null)
            {
                wholef[i] = fileloc;
                System.out.print("the contents of this file are: ");
                System.out.println(fileloc);
                i++;
            }
        System.out.println("This is the contents of the file stored in an array of strings");
        for(int n = 0; n < fline; n++)
        {
            System.out.println(wholef[n]);
        }
        } catch (IOException er)
        {
            er.printStackTrace();
        }
        finally
        {
        try
        {
            if(file != null)
            {
                file.close();
            }
        } catch(IOException erx)
        {
            erx.printStackTrace();
        }
        }

        System.out.println("This is the size of the contents of the file");
        for(int n = 0; n < fline; n++)
        {
            System.out.println(wholef[n].length());
        }

        System.out.println("this is the input file converted and stored into an array of integers");

        String[] parts = null;
        int[] intwholef = null;
        int[] wholelist =null;
        for(int x = 0; x < fline; x++)
        {
            parts = wholef[x].split(" ");

            intwholef= new int[parts.length];

            for(int n = 0; n < parts.length; n++)
            {
                intwholef[n] = Integer.parseInt(parts[n]);
                System.out.println(/*"intwholef[" + n + "] = " + */intwholef[n]);
                for(int m = 0; m < parts.length; m++)
                {
                    //wholelist[m]= intwholef[n];
                }
            }
        }

        System.out.println("this is the list of number from the conversion dumped into a singular array list");

        for(int i = 0; i < 15; i++)
        {
            System.out.println("intwholef[" + i + "] = " + wholelist[i]);
        }
        /*
        System.out.println("operations done with array of ints");
        for(int i = 0; i < 20; i++)
        {
            System.out.println(intwholef[i]);
        }
        //System.out.println(intwholef[0] * intwholef[3]);
        */

    }
}
0

2 Answers 2

2

I suggest you use a List (like ArrayList) instead of an array as the size of it can change. As such:

ArrayList wholeList = new ArrayList<Integer>();
for(int x = 0; x < fline; x++)
    {
        parts = wholef[x].split(" ");
        for(int n = 0; n < parts.length; n++)
        {
            wholeList.add(Integer.parseInt(parts[n]));
        }
    }

Then you can access the different values with wholeList.get(index).

Sign up to request clarification or add additional context in comments.

2 Comments

okay this worked but when i tried to print them out, it gave me an error, is used System.out.println(wholelist.get(i)); in a for loop incrementing the variable i. if thats not how you access them then how would i go about doing so?
never mind i see that i was making the error in another location, thank you again this helped immensely!
0

You can do it simply using an ArrayList. If you want to end up with an Array, use the toString method. Split the string with \\s, so that any whitespace can serve as delimiter. Also, you only need only loop, like this:

    int[] myArray = new int[10];
    List<Integer> list = new ArrayList<Integer>();
    while ((fileloc = file.readLine()) != null) {
        for (String s : fileloc.split("\\s+")) {
            list.add(Integer.parseInt(s));
        }
        System.out.println(Arrays.toString(myArray));
    }
    int[] wholelist = list.toArray();

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.