Two dim array

hello
it would be really nice if someone could help me with that.
i am trying to sort an array and i have read that i can do that with a statement called sort(), but it doesn't seem to work.
this is what i have tried:
for(int i = 0; i < arr.length; i++)
       for(int j = 0; j < arr.length; j++)
           sort(arr[i][j]);
}the error i get is:
Exercise5W2.java [56:1] No method found matching sort(int)
sort(arr[i][j]);
^
1 error
thanks for ur help!

You can use the java.util.Arrays.sort() with and without
the java.util.Comparator interface.
First you sort all individual one-dim int arrays,
then you sort the whole two-dim array.
Here is how it goes:
// 2-dim int array example
int[][] twoDimIntArray = { { 4, 67, 45 }, { 23, 98, 3}, { 2, 68, 112}, { 333, 5, 21 } };
// First you sort all individual 1-dim int arrays
for (int i = 0; i < twoDimIntArray.length; i++)
    Arrays.sort(twoDimIntArray);
// Then you sort the whole 2-dim array (with an house made Comparator)
Arrays.sort((Object[])twoDimIntArray, new TwoDimIntArrayComparator());
// Print out the result
for (int i = 0; i < twoDimIntArray.length; i++)
for (int j = 0; j < twoDimIntArray[i].length; j++)
System.out.print(twoDimIntArray[i][j] + " ");
System.out.println();
// Here is the Compararor for 2-dim int array objects
class TwoDimIntArrayComparator implements Comparator
public int compare(Object o1, Object o2)
int[] oneDimIntArray1 = (int[])o1;
int[] oneDimIntArray2 = (int[])o2;
// First integer of each array to be different,
// return the comparison
for (int i = 0; i < oneDimIntArray1.length; i++)
if (oneDimIntArray1[i] > oneDimIntArray2[i])
return 1;
else if (oneDimIntArray1[i] < oneDimIntArray2[i])
return -1;
// All integers of the arrays are equal
return 0;
public boolean equals(Object obj)
return false;

Similar Messages

  • System.arraycopy (2 dim array) and growth of 2 dim array

    Hi everybody
    I am working on a program which contains a module that can perform Cartesian product on number of sets.
    The code I have developed so far is :
    import java.lang.reflect.Array;
    public class Cart5 {
    public static void main(String[] args) throws Exception
    int pubnewlength;
    // declare SolArray
    int[][] solArray;
    // initialize solArray
    solArray=new int[1][4];
    // Use for method
    for (int ii=0 ; ii<4 ; ii++)
    solver(solArray,ii);
    // Print the array ?
    System.out.println("\n  The array was changed ... " );
    }  // End main
    public void solver(int Solarray2[][] , int abi)
    int[][]  A  =  {  {1,2,3,5},
                      {4,6,7},
                      {11,22,9,10},
                      {17,33}
      jointwoArrays(solarray2,A,abi);
    // some other operations
    } // End Solver method
    public void jointwoArrays(int solarray3[][] , int aArray[][],int indexA)
    int y,u;
    int[][] tempArray;
    // calculate growth of rows:
    pubnewlength=solArray3.length * aArray[indexA].length;
    //Fill TempArray
    y=solArray3[0].length;
    u=solArray3.length;
    tempArray=new int[u][y];
    // Use system.arraycopy to copy solArray3 into tempArray -- How ?
    // Change the size of arrow to proper size -- How ?
    solArray3 = (int[][]) arrayGrow(solArray3);
    // Join operation - Still under construction
    for(int i = 0, k = 0; i < tempArray.length; i++)
                   for(int j = 0; j < set3.length; j++)
                                     for (q=0;q<=2;q++)             
                                      { solArray3[k][q] = tempArray[i][q];}
                                     solArray3[k][q]= aArray[indexA][j];
                                     ++k;
    } // End jointwoArrays method
    // This module is from http://www.java2s.com/ExampleCode/Language-Basics/Growarray.htm
        static Object arrayGrow(Object a) {
        Class cl = a.getClass();
        if (!cl.isArray())
          return null;
        Class componentType = a.getClass().getComponentType();
        int length = Array.getLength(a);
        int newLength = pubnewlength;
        Object newArray = Array.newInstance(componentType, newLength);
        System.arraycopy(a, 0, newArray, 0, length);
        return newArray;
    } // End ClassI deeply appreciate your help with these 3 questions :
    1. How can I use system.arraycopy to copy my two dimensional array? I have searched but examples seem to be about one dim arrays.
    2. How can I change the "static Object arrayGrow(Object a)" , to grow my two dimensional array ?
    3. If you know any codes or articles or java code regarding cartesian products , please tell me.
    Thank you
    Denis

    1. How can I use system.arraycopy to copy my two
    dimensional array? I have searched but examples seem
    to be about one dim arrays.That's because you can't do it in one call. You need to create a loop which copies each 'row".
    >
    2. How can I change the "static Object
    arrayGrow(Object a)" , to grow my two dimensional
    array ?Why do you make it so complicated (generic). Make it take an int[][] array instead, and see the answer from above.
    >
    3. If you know any codes or articles or java code
    regarding cartesian products , please tell me.There are probably lots of them if you google.
    Kaj

  • In the attached vi, I have a 2-dim series of EMGs which I would like to connect with a 1-dim array. How can I do this?

    In the attached vi, de Y values are given for each time as a matrix. The problem is that the y values coming out have to be a 1-dim array, in order to connect this vi with another vi. How can I do this?
    Attachments:
    3-dim_Filter.vi ‏48 KB

    Hi,
    can you post your curve fitting .vi?
    I think you can do this with the reshape array.vi, and take the 2-D array, find out it's size, and multiply the two dimensions together to get the number of elements you need. That'll give you the array as 1-D, but whether it's in the correct order as you need it is another matter.
    It all depends on what the 2-D array is representing, and how much of it needs to go to the "other" .vi
    Hope that helps
    S.
    // it takes almost no time to rate an answer

  • How to sort a 2 dim Array ?

    hello
    I would like to sort a 2-dim array of double ( double[][])
    according to the 1st column
    It is possible to sort a 1st dim array (doubel[]) , but the method sort
    of the class Array doesn't work with double[][]).
    I have two (bad) solutions.
    1) Writing a sorting method but I would prefer using the sort' method of java which uses quicksort
    2) Creating a table of objects that implements Comparable but this would decrease performance
    Do you have a better Idea ?
    Thanks a lot

    I would like to sort a 2-dim array of double (double[][]) according to the 1st column
    Which is the first "column"? double[0][x] or
    double[x][0]?
    If it's the second one things get simple: your
    double[][] is really an array of objects where each
    object is an array of doubles. So all you need to do
    is write a custom Comparator for double[] to use the
    sort method:
    compare(Object obj1, Object obj2) {
    double[] d1 = (double[]) obj1;
    double[] d2 = (double[]) obj2;
    return d1[0] > d2[0];
    }Thanks for your so prompt answer.
    I can manage to put the data so that I sort the array according to x as in double[x][0]?
    But WHERE do I have to write the "compare" method ?
    Thanks

  • How to sort a 2 dim. array by the first column?

    Hi there,
    I need to know, how to sort a 2 dim. String array by the first column, which means "string[0][x]".
    I think, I have to implement a new comparator class. But how?
    Thanks in advance for any help

    I need to know, how to sort a 2 dim. String
    array by the first column, which means
    "string[0][x]".You want to sort the array using the first element in each row and that element is a String?
    Let's forget about generics. Say you want to supply a Comparator. The compare method should decide the order between elements when passed two element objects. In a two-dimensional array the elements will be one-dimentional arrays and you use the first element in those arrays, like
    public int compare(Object s1, Object s2) {
       String[] a1 = (String[]) s1;  // first row array
       String[] a2 = (String[]) s2;  // second row array
       return a1[0].compareTo(a2[0]); // compare first element of row arrays
    }

  • How to fill up a 3-dim array?

    Hello!
    See the attached vi. We want to fill upp a 3-dim array. The pages are "number". If "true" is true then we want to insert the row that we build inside the case on page number "number". But the problem is that the new element is placed outside the 3-dim array because the pages are not the same size. How can this problem be solved? Maybe we should use "replace element" ? Does anyone have a tip or idea?
    Thank you and best regards.
    Attachments:
    trouble1.vi ‏51 KB

    Hello Ex-jobb,
    if you want to replace an element of an array, than the index has to be inside that array... Otherwise you have to add an element using build array.
    I changed your example a little bit.
    1) Adding a row with your "Replace Array element", but now using two index values. You may change the second index to your needs.
    2) Making the array constant "bigger" by setting a values at index [6,6,6]. You can NOT replace anything inside an empty array!
    Hope this helps,
    GerdW
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome
    Attachments:
    trouble1.vi ‏51 KB

  • How to get number of rows and columns in a two dimensional array ?

    Hello,
    What would be the simplest way to get number of rows and columns in a two dimensional array represented as integers ?
    I'm looking for another solution as For...Each loop in case of large arrays.
    Regards,
    Petri

    Hi Petri,
    See a attached txt file for obtaining two arrays with upper and lower index values
    Regards
    Ray
    Regards
    Ray Farmer
    Attachments:
    Get2DArrayIndex.txt ‏2 KB

  • Assigning value to a two dimensional array

    Hi,
    I am trying to assign value to a two dimesional array the following way.
    String [ ] [ ] d2D = new String [10] [ ];
    for (int i = 0; i<obj.length; i++){
    d2D = { "hello " + i, "here" , "we go" };
    but it gives me the error "illegal start of expression " pointing to the line in the loop assigning values to d2D[i].
    Any help would be deeply appreciated.

    You need to use the syntax for creating an anonymous array: new String[] {..., ...}
    String [ ] [ ] d2D = new String [10] [ ];
    for (int i = 0; i<obj.length; i++){
        d2D[ i ] = new String[] { "hello " + i, "here" , "we go" };
    }

  • How to copy data in text file into two-dimensional arrays?

    Greeting. Can somebody teach me how to copy the input file into two-dimensional arrays? I'm stuck in making a matrix with number ROWS and COLUMNS according to the data in "input.txt"
    import java.io.*;
    import java.util.*;
    public class array
        public static void main (String[] args) throws FileNotFoundException
        { Scanner sc = new Scanner (new FileReader("input.txt"));
            PrintWriter outfile = new PrintWriter("output.txt");
        int[][]matrix = new int[ROWS][COLUMNS];
    }my input.txt :
    a,b,c
    2,2,1
    1,1,1
    2,2,1
    3,3,1
    4,4,1
    5,5,1
    1,6,2
    2,7,2
    3,8,2
    4,9,2
    5,10,2

    import java.io.*;
    import java.util.*;
    public class array {
        public static void main(String[] args) throws IOException {
            FileInputStream in = null;
            FileOutputStream out = null;
    try {
        in = new FileInputStream("input.txt");
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        String line = null;
        while ((line = reader.readLine()) != null) {
            String split[]=line.split(",");
    catch (IOException x) {
        System.err.println(x);
    } finally {
        if (in != null) in.close();
    }}}What after this?

  • How to use two dimensional array in custom.pll

    HI
    How to use two dimensional arrays in custom.pll
    I tried by the following way .
    type ship_array is table of number index by binary_integer;
    type vc_array is table of ship_array index by binary_integer;
    But I am getting the error as that
    A plsql table may not contain a table or a record with composite fields.
    Please tell me the way how to use them

    which forms version are you using? two dimensional arrays are available in >= 9i if memory serves.
    regards

  • Variable number of two dimensional arrays into one big array

    I have a variable number of two dimensional arrays.
    The first dimension is variable, the second dimension is always 7.
    i.e.:
    Object[][] array0 = {
    {"tim", "sanchez", 34, 175.5, "bla", "blub", "[email protected]"},
    {"alice", "smith", 42, 160.0, "la", "bub", "[email protected]"},
    Object[][] array1 = {
    {"john", "sdfs", 34, 15.5, "a", "bl", "[email protected]"},
    {"joe", "smith", 42, 16.0, "a", "bub", "[email protected]"},
    Object[][] arrayi = ...I'm generating these arrays with a for-loop:
         for (int i = 0; i < filter.length; i++) {
              MyClass c = new MyClass(filter);
              //data = c.getData();
    Where "filter" is another array which is filled with information that tells "MyClass" how to fill the arrays.
    "getData()" gives back one of the i number of arrays.
    Now I just need to have everything in one big two dimensional array.
    i.e.:Object[][] arrayComplete = {
    {"tim", "sanchez", 34, 175.5, "bla", "blub", "[email protected]"},
    {"alice", "smith", 42, 160.0, "la", "bub", "[email protected]"},
    {"john", "sdfs", 34, 15.5, "a", "bl", "[email protected]"},
    {"joe", "smith", 42, 16.0, "a", "bub", "[email protected]"},
    Any idea on how to accomplish this? It's blowing my mind right now.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    Just brainstorming here:
    Why not put your actual data in a class and store that in a LinkedList (so you know the total number of elements for your multi-dimensional array). Then initalize your multi-dimensional array and populate it? Haven't tested the following, but thinking something along the lines of
    public class MyData {
         //data here
         public Object[] toArray() {
              //something similar to this
              return new Object[] = {"tim", "sanchez", 34, 175.5, "bla", "blub", "[email protected]"};
    LinkedList<MyData> data = new LinkedList<MyData>();
    data.add(mydata1);
    //however many times you need
    Object[][] arrayComplete = new Object[data.size()][7];
    for(int i = 0; i < data.size(); i++) {
         arrayComplete[i] = data.removeFirst().toArray();
    }Another option for knowing how many rows you would need might be using something like:
    int rows = 0;
    rows += array1.length;
    rows += array2.length;
    //etc...But is not entirely useful if you don't know how many variable arrays you have (although reflections might help if the name of the array variable is incremented systematically, someone told me earlier to avoid reflections since it could make debugging a LOT more difficult).
    Edited by: bogdana on Apr 1, 2010 10:38 AM

  • Noob: read entries in a file.txt into a 2 dim array

    I'm a newbie trying to learn Java & Swing and I'm attempting to use the Jtable element to display really simple car records in CSV format in my UI. The values in my file are like so:
    1970,Chevy,Chevelle,16000
    1972,Oldsmobile,Cutlass,15000
    1969,Chevy,Camaro,22000
    1971,Plymouth,Barracuda,19500
    and as far as I can tell, from the documentation i've read
    (http://java.sun.com/docs/books/tutorial/uiswing/components/table.html), the suggested way for it to work should just be to read in the records to the JTable as a two dimensional object array. But I keep getting java.lang.NullPointerException.
    what am i doing wrong? the tokens seem to print out just fine, but I can't read them into the array. i tried a lot of things, spent a good deal of time with my Java book and Mr. Google, but nothing seems to be working and i'm stuck. As far as i can tell, I should be able to:
    1. use buffered file reader to read the records
    2. use either split() or token to break the records out by the comma delimiter
    3. pack the data into a two dimensional array
    4. feed that into the JTable constructor.
    right? well, I'm stuck on step 3. - here's some code:
    try
                FileReader fr = new FileReader("carStock.txt");
                BufferedReader br = new BufferedReader(fr);
                String newline=null;
                int i=0;
                String myCarData[][] = null;       
                while((newline=br.readLine())!=null)
                    //carInfoFromFile.add(newline);       
                    String[] theLine = newline.split(",");
                    for(String token:theLine)
                        System.out.println(token);   
                        myCarData[0]=token;
    myCarData[i][1]=token;
    myCarData[i][2]=token;
    myCarData[i][3]=token;
    System.out.println(myCarData[i][0]);
    i++;
    catch (FileNotFoundException e)
    e.printStackTrace();
    catch (IOException e)
    e.printStackTrace();

    ok, so far i have learned that i did not initialize my array correctly. so now i have:
    Object myCarData[][] = new String[4][4];
    but i still do not see how to successfully iterate over all of the csv records that get read in from my text file: i.e. now i tried:
    while((newline=br.readLine())!=null)
       //Parse the line being read in
       String[] theLine = newline.split(",");
       myCarData[0][0] = theLine[0];
       myCarData[0][1] = theLine[1];
       myCarData[0][2] = theLine[2];
       myCarData[0][3] = theLine[3];
    //now what????  how do i get to the next "theLine?"
    }and i do in fact have a proper car class, but i don't understand how i would use it it this scenario.
    I realize I should be using two for loops to populate the array, but i am doing it longways first. But I can't figure it out longways. I know this is probably a simple matter of syntax. What am I missing?

  • Problem returning a two-dimensional array in web service

    Hello. I'm having problems returning a two dimensional array in my web service. The service returns a MyClass[][] correctly, but the client receives a different one.
    I've done a test that returns a MyClass[1][1] an the client shows a MyClass[1][20]. All the MyClass objects returned in the array are the same and all it's fields are null. There's even an element of the array containing null instead of the object. As I say, the service creates the array ok, but the client gets other thing.
    I have other methods returning one-dimensional arrays MyClass[] and I have no problem.
    My system:
    WindowsXP
    Tomcat 5.5 (Axis 1.3?)
    JDK 1.5
    Eclipse 3.3
    My wsdl is generated with eclipse, although I've had to update my wsdd manually.
    Any Ideas?
    Thanks.

    Does it have to be stored in an array?
    Because you could use the java.awt.Point class, and a
    java.util.Set to create random points until you have
    the correct number of unique points.Of course it is no must to store it in an array. it was just my first thought of approaching the problem. I will try the Point.class. Thanks for that hint.

  • Creating one and two Dimensional array

    Hi guys my problem is as follows
    (1)I want to create a two dimensional array of 10 rows and 20 columns
    (2)Populate the array with random integers
    (3)convert the two dimensinal array into one dimensional array int[]nums
    (4)print the content of one and two dimensional arrays to the screen

    You don't learn much about coding if you don't write any code. Without seeing the code that was written it's very difficult to assist a person, since your solution may not be anywhere close to their solution. If the poster just wants the code to hand in or use as is then there is no learning happening.
    So, step 1 - post your code, step 1a - ask a clear question.
    Just my opinions
    Lee

  • Count the number of values in a two dimensional array

    i am trying to figure out how to count the number of values in a two dimensional array.
    numScores = student[i][j].length;This doesn't work, i am trying to find a way of counting the columns

    Object[][] o;
    int tot = 0;
    for(int x = 0 ; x < o.length ; x++)
       tot += o[x].length;
    }If it's not a jagged array, however, this would be easier:
    int tot = o.length * o[0].length;

Maybe you are looking for