Compare int[] array

Hi!
Could you please help me how can I can compare two int[] array?
I've got int[] a and int[] b
I have tried a.equals(b) but even if all the elements are the same, it returns false.
Should compare any elements in the array?
Thanks for your help.

See the javadoc for java.util.Arrays.equals()
equals
public static boolean equals(int[] a,
int[] a2)
Returns true if the two specified arrays of ints are equal to one another. Two arrays are considered equal if both arrays contain the same number of elements, and all corresponding pairs of elements in the two arrays are equal. In other words, two arrays are equal if they contain the same elements in the same order. Also, two array references are considered equal if both are null.
Parameters:
a - one array to be tested for equality.
a2 - the other array to be tested for equality.
Returns:
true if the two arrays are equal.

Similar Messages

  • How to convert an int array to string array?

    Hi,
    Can anyone please help me with this question?
    int number={4,6,45,3,2,77};
    I like to convert this into a list and sort
    List mylist = Arrays.asList(number);
    Collections.sort(mylist);
    But first I need to convert the int array to String array.
    Please advise. Thanks.

    If you want to convert your int array to a String array, you have no choice but doing a conversion element by element in a for loop.
    However, if the sort method doesn't behave as desired, you can use the one with 2 parameters, the second parameter being a comparator class.
    Check the javadoc for more information : http://java.sun.com/j2se/1.3/docs/api/java/util/Collections.html
    /Stephane

  • Better way to sort multi dim int array

    I'm tracking key value pairs of ints. I know that the keys will not repeat. I've decided to do this in an int[][] array
    int[][] data = new int[2][many millions]This app crunches a lot of data so I'm shooting for the best memory handling. I push a bunch of key - value pairs into the array. I will likely populate many if not all data and not have to search until I'm done populating so I'm not sorting as I go.
    I know that I can sort the single dim array data[0] but how can I keep the values array data[1] synchronized? I've tried a few things, all have been successful but I'm wondering if there's a better method. Currently I create copy arrays for the keys and values, sort the original keys, and loop through the copy keys. For each copy key I binary search the sorted keys and drop the value in the correct spot. I don't like having to allocate 2X the amount of memory for the swap arrays. Any thoughts?
    Thanks
    ST

    Jos, thanks for the reply. I tried this method but I don't get as much
    storage since each internal array counts as an object.Yes I know; maybe I've got something for you, waidaminnit <dig-dig/>
    <shuffle-shuffle/> Ah, got it. Suppose you wrap your two dim array in
    a simple class that implements this interface:public interface Sortable {
         public int length();
         public int compare(int i, int j);
         public void swap(int i, int j);
    }I think the semantics of the methods are obvious. Given this interface
    you can sort anything you like using this thingy:public class HeapSort {
         private Sortable s;
         private void heapify(int i, int n) {
              for (int r, l= (i<<1)+1; l < n; i= l, l= (i<<1)+1) {
                   if ((r= l+1) < n && s.compare(l, r) < 0) l= r;
                   if (s.compare(i, l) < 0) s.swap(i, l);
         private void phase1() {
              for (int n= s.length(), i= n/2; i >= 0; i--)
                   heapify(i, n);
         private void phase2() {
              for (int n= s.length(); --n > 0; ) {
                   s.swap(0, n);
                   heapify(0, n);
         public HeapSort(Sortable s) { this.s= s; }
         public Sortable sort() {
              phase1();
              phase2();
              return s;
    }kind regards,
    Jos

  • Returning int array from C to Java as method parameter

    Hello,
    I've been trying to accomplish this
    Java
    int[] myArray = ... (filled with some data);
    int retCode = myNativeCall(myArray);
    if(retCode == 0)
    doSomethingWith(myArray); //myArray gets overwritten with new data (with new size also) during the native call...
    C
    JNIEXPORT jint JNICALL Java_GenChav_rsaEncrypt(JNIEnv *env, jobject obj, jintArray myArray){
    jintArray outbuf;
    int[] new_array = .. // some function will fill this....
    int new_array_length = ...//some function will give me the new size, not big, 512 max...
    jint tmp[new_array_length]; //allocate..need something more ??
    memcpy(tmp, new_array, new_array_lenght);
    outbuf=(*env)->NewIntArray(env, new_array_length);
    (*env)->SetIntArrayRegion(env, outbuf, 0, new_array_length, tmp);
    myArray=outbuf;
    I tought this way I would have a updated myArray ints on the Java program...
    Any thought??

    user5945780 wrote:
    Ok, let's try to be constructive here...
    How I do implement a return type for my method like a int array ?First realized it has nothing to do with JNI. So the same question and answer applies to java only.
    >
    like:
    int[] return = myNativeCall();
    Yes.
    Then I will look for return[0], if it is == to 0, fine, it means a successful calculation by the native code. Not sure what that means. The structure of what you return it up to you.
    It can help when you are unsure of what to do in JNI....write a pseudo representation of what you want to do in a java method. Then translate that java method into JNI, everything in the pseudo method must be in the JNI code.

  • How do you invoke a method with native int array argument?

    Hi,
    Will someone help me to show me a few codes samples on how to invoke a method which has only one argument, an int [] array.
    For exampe:
    public void Method1(int [] intArray) {...};
    Here is some simple code fragment I used:
    Class<?> aClass = Class.forName("Test2");
    Class[] argTypes = new Class[] {int[].class};
    Method method = aClass.getDeclaredMethod("Method_1", argTypes);
    int [] intArray = new int[] {111, 222, 333};
    Object [] args = new Object[1];
    args[0] = Array.newInstance(int.class, intArray);
    method.invoke(aClass, args);I can compile without any error, but when runs, it died in the "invoke" statement with:
    Exception in thread "main" java.lang.IllegalArgumentException: object is not an instance of declaring class
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at Test1.invoke_Method_1(Test1.java:262)
         at Test1.start(Test1.java:33)
         at Test1.main(Test1.java:12)
    Any help is greatly appreciated!
    Jeff

    Sorry, my bad. I was able to invoke static methods and instance methods with all data types except native int, short, double and float, not sure the proper ways to declare them.
    After many frustrating hours, I posted the message for help, but at that time, my mind was so numb that I created a faulted example because I cut and pasted the static method invocation example to test the instance method passing int array argument.
    As your post suggested, "args[0] = intArray;", that works. Thanks!
    You know, I did tried passing the argument like that first, but because I was not declaring the type properly, I ended up messing up the actual passing as well as the instantiation step.
    I will honestly slap my hand three times.
    jml

  • Writing txt file to int array

    The project I was assigned is to write a program that takes numbers from a text file (all on one line, separated by spaces) and store them into a 5-element array. The program is supposed to check and see if the array is big enough to hold all the numbers from the text file, and if it isn't, it is supposed to double that array size. I've written the following code and it compiles, but it will not run due to this error:
    Exception in thread "main" java.lang.NullPointerException
         at java.io.Reader.<init>(Reader.java:61)
         at java.io.InputStreamReader.<init>(InputStreamReader.java:55)
         at ArrayReader.main(ArrayReader.java:16)
    ----jGRASP wedge2: exit code for process is 1.
    ----jGRASP: operation complete.
    This is what I have so far. If anyone could help me or point out anything I missed it would be greatly greatly appreciated.
    import java.io.*;
    public class ArrayReader
         public static void main(String[] args)
              File file = new File("numberlist.txt");
              FileInputStream fis = null;
              BufferedReader br = new BufferedReader (new InputStreamReader(fis));
              int i = 5;
              int x = 0;
              int[] array;
              array = new int;
              try
                   fis = new FileInputStream(file);
                   for (x = 0; x < array.length; x++)
                             if (x > array.length)
                                  i = i*2;
                                  System.out.println("Array too small. Doubling size to: " + i);
                             else
                                  array[i] = fis.read();
              catch(FileNotFoundException e)
                   System.out.println("File " + file.getAbsolutePath() +
                                            " could not be found on filesystem");
              catch(IOException ioe)     
                   System.out.println("Exception while reading the file" + ioe);
              for (i = 0; i < array.length; i++)
                   System.out.println(array[i]);

    ursusmajx wrote:
    Exception in thread "main" java.lang.NullPointerException
         at java.io.Reader.<init>(Reader.java:61)
         at java.io.InputStreamReader.<init>(InputStreamReader.java:55)
         at ArrayReader.main(ArrayReader.java:16)Start by looking at line 16 in ArrayReader.main. It's not lie 16 in the code you posted here, so either you haven't posted the code you tried to run or you're not running the code you think you are.
    I do see where you are using fis before assigning it a value.
    db

  • How to pass int array as an IN parameter to PLSQL Procedure

    Hi,
    How to pass int array in java to a stored procedure througn jdbc
    and what type of data type I should declare to this IN parameter
    in PLSQL Procedure.
    Thanks,
    Simi

    Hi,
    The best way to do what you want depends on what you want.  Start by describing what you need to do.  It's best to post some sample data (CREATE TABLE and INSERT statments) and what results you want from that sample data.  (See the forum FAQ: https://forums.oracle.com/message/9362002)
    If you have ideas about how to do the job (e.g., populating a temporary table) it can be helpful to include those, too, but distinguish clearly between WHAT you need to do and HOW you might do it.
    As Bencol suggested, a SYS_REFCURSOR might be the best way to pass back the results.
    Since you didn't post your table, or even describe what you wanted to do with it, I'll illustrate using scott.emp, which is probably on your system.
    Say you wanted a procedure that took a DATE as an argument, and returned a some designated columns (empno, ename and hiredate in the example below) for all employees hired on or after the given DATE.  You might write a procedure like this:
    CREATE OR REPLACE PROCEDURE  hired_since
    (   start_date  IN   DATE
    ,   out_data    OUT  SYS_REFCURSOR
    AS
    BEGIN
        OPEN out_data FOR
            SELECT  empno, ename, hiredate
            FROM    scott.emp
            WHERE   hiredate  >= start_date;
    END  hired_since;
    SHOW ERRORS
    You can test it in SQL*Plus like this:
    VARIABLE   c REFCURSOR
    EXEC  hired_since (DATE '1982-01-01', :c);
    PRINT :c
    The output I got from this test was:
         EMPNO ENAME      HIREDATE
          7788 SCOTT      19-APR-87
          7876 ADAMS      23-MAY-87
          7934 MILLER     23-JAN-82

  • How to compare 2 arrays with different operator options using parameters in Teststand

    Pls let me know how to compare 2 arrays using different operators like <= or >= or ==......

     I am using TS 2010. FYI
    ex:
    Array XX [ A_Temp,
                   B_Temp,
                   C_Oil Pressure,
                   D_Oilpressure,
    Note : A_Temp, B_Temp,C_Oil Pressure,D_Oilpressure all these parameters will be getting  numerical values (dynamically) from the simulink models and also in future I may need to add parameters to this array.
    Array YY [A_Temp_1,
                   B_Temp_2,
                   C_Oil Pressure_3,
                   D_Oilpressure_4,
    Note : A_Temp_1, B_Temp_2,C_Oil Pressure_3,D_Oilpressure_4 all these parameters will be getting  numerical values (dynamically) from the simulink models
    So my question :
    I would like to verify A_Temp >= A_Temp_1
                                B_Temp >= B_Temp_2
                                C_Oil Pressure  >= C_Oil Pressure_3  etc

  • Compare 2 arrays,if same value add the value.If different value show 0

    hello to all! i am new to labview and i'am trying to solve a labview exercise
    ''compare 2 arrays 1d 1x10 (the values of them are lucky numbers from 1 to 10)  .compare them and create a new array [1,10] that saves the same values in the corresponding places ,while in the remainder places where the elements of 2 tables are different  show 0''
    One Example
    In this time of project i have stuck at the comparison of values of two array.and how i would achive creating the Array3! I have search the forum about founding any answer.Any ideas?
    Message Edited by sdadfsdfds on 06-05-2008 12:08 PM
    Message Edited by sdadfsdfds on 06-05-2008 12:09 PM

    I am guessing that since this is a labview exercise it is meant as a learning experience.  There are several ways to solve this problem, I have shown one way below.  I suggest that you try and come up with other ways on your own.  Feel free to ask any questions.
    Cheers
    Message Edited by jmcbee on 06-05-2008 11:25 AM
    CLA, CLED, CTD,CPI, LabVIEW Champion
    Platinum Alliance Partner
    Senior Engineer
    Using LV 2013, 2012
    Don't forget Kudos for Good Answers, and Mark a solution if your problem is solved.
    Attachments:
    Compare Arrays.PNG ‏3 KB

  • Problem with reading numbers from file into double int array...

    Okay, this is a snippet of my code:
    public void readMap(String file){
            try {
                URL url = getClass().getResource(file);
                System.out.println(url.getPath());
                BufferedReader in = new BufferedReader(new FileReader(url.getPath()));
                String str;
                String[] temp;
                int j=0;
                while ((str = in.readLine()) != null) {
                    temp = str.split(",");
                    for(int i=0;i<temp.length;i++){
                        map[j] = java.lang.Integer.parseInt(temp[i]);
    j++
    in.close();
    } catch (IOException e) {
    System.out.println("Error: "+ e.toString());
    map[][] is a double int array. Now, the code is running through each line of the text file (with each line looking like this: 0,3,6,2,2,3,1,5,2,3,5,2), and I want to put the numbers into a corresponding double int array (which is where map[][] comes in). Now, this code WOULD work, except I need to set the sizes of each array before I start adding, but I don't know how to get the exact sizes.. how can I get around this issue?
    Message was edited by:
    maxfarrar

    You can do a two-dimensional ArrayList? That syntax
    you wrote didn't work.
    I tried doing:
    private ArrayList<ArrayList><Integer>> map;
    Your syntax is just wrong -- or, this forum software has bug in handling angle brackets.
    ArrayList<ArrayList<Integer>>...The closing angle bracket after the second 'ArrayList' is the one generated by the bug. Basically, it should be T<T<T2>> without spaces. Oh, for that matter:
    Arraylist<ArrayList<Integer>>

  • Compare 2 Arrays??

    Hi,
    I'm looking for a easy way to compare 2 arrays and get an result. We take one on we have in the first array the values 1, 2, 3, 4 and 5 and in the second array we have the values 3 and 5.
    array1 | array2
    1 | 3
    2 | 5
    3 |
    4 |
    5 |
    After comparing I should get as result jus the values 1,2 and 4. I already searched for a solution but i couldn't find anything. Except a way, that I think would be quite complex.
    My Solution ->
    First I read out both arrays and try to save them in a collection (HashSet) type. Then it will be possible to use the method removeAll() of the interface Set. The result should again be converted to an array.
    Does anyone know an easier way? Thx!
    Cyrill

    Why is using a Set so hard? That seems like the best way to me. The "hard" part would only be if you're filling the set with a loop instead of the easy way:
    Set set = new HashSet(Arrays.asList(yourArray));
    set.removeAll(Arrays.asList(yourOtherArray));How can it get easier than 2 lines of code?

  • How to conver vector to Int array

    Hi
    I know toArray method can be used to convert vector to an array but what if I want to convert it to an int array?
    Vector v = new Vector();
    int r [] = new int [1];
    v.add(2);
    r = v.toArray()//gives errorHow can I cast it to return int Array rather than object array?

    Vector v = new Vector(10);
    for(int i = 0; i < 10; i++) {
        v.add(i);
    int r[] = new int[v.size()];
    for(int i = 0; i < r.length; i++) {
        String value = v.elementAt(i).toString();
        r[i] = Integer.valueOf( value ).intValue();
        System.out.println(r);

  • Filling an int array

    Hi would anyone know how to fill an int array of size 20 with all random number between 0-19 and have no duplicates in the finished array.

    Oh yeah i have code done but it doesnt want to work properly. ill show you.
    public int randomNum(int x, int y) {
                int a=Math.max(x, y);
                int b=Math.min(x, y);
                return (int)Math.floor(Math.random()*(a-b))+b;
          * Checks the index list to see if it contains the random number
          * @param num
          * @param arr
          * @return
         public boolean hasNum(int num, int[]arr){
              int n = num;
              for(int i=0; i<arr.length;i++){
                   if(arr[i] == n)
                        return true;
              return false;
          * Return an integer [] for use as index positions
          * @return
         public int[] indexList(){
              int[] list = new int[uArr.length];
              for(int i=0;i<list.length;i++){
              int r = randomNum(0,19);
               while(!hasNum(r,list)){
                        list[i] = r;
                        r = randomNum(0,19);
                   System.out.println(""+list);
              return list;

  • Saving int [][][][] array to a file

    Hello...
    I realize that I can save the array to a file by saving each bit of information separately, and then recalling it...
    I was curious whether it is possible to save an int[][][][] array to a file "as it is". that is, some way of just exporting the array to a file and then recalling it. if it is not possible, saying so is also helpful.
    Thanks.

    yes... well... i didn't necessarily mean a 4D array was common. i meant it would seem a common desire to store any array, even 1d, or an ArrayList, or anything really... other than being able to write JUST at int, or just a String, or just a double. see... it can take about 10 minutes to create this 4d array; so i can save that time by just recalling it from a file in about 2 seconds... would have figured this wasn't too uncommon of a desire... though not common enough probably.

  • Reading content of a file into an int array

    How do i use FileReader rd = new FileReader(filename) to read the contents into an int array?

    public static int[] parse_file(String filename)
         Vector vec = new Vector();
         int num[];
         num = new num[vec.size()];
         try {
              BufferedReader br = new BufferedReader(new FileReader(filename));
              String line;
              while((line = br.readLine()) != null) {
              vec.add(line);
              for (int i = 0; i < vec.size(); i++) {
              num[i] = (int) vec.get(i);
              System.out.println("Number=" + num);
         catch(IOException e) {
              System.out.println("error");
         return num;
    Maxsum.java:22: cannot resolve symbol
    symbol : class num
    location: class Maxsum
         num = new num[vec.size()];
    ^
    Maxsum.java:30: inconvertible types
    found : java.lang.Object
    required: int
              num[i] = (int) vec.get(i);
    How do i initialize the array?if i do not initialize it, there'll be array not initialized error also..How do i convert the String to int?

Maybe you are looking for

  • Installing NW CE7.1 and EP 7.0 on one machine

    Hello All, i have a question i am trying to install NW CE 7.1 and NW EP 7.0 on one windows 2003 ser machine but both are with different DBs EP with MSSQL 2005 server and CE with SAPDB. EP is based upon JDK 1.4 while NW CE 7.1 is based upon JDK 1.5. I

  • How can I prevent Adobe Reader X from being the default to open .pdf files?

    I have Adobe Acrobat Professional 9.0 and will soon be getting V 10. I want Acrobat to open my .pdf files NOT Reader. Reader was installed because a certain program required it. Any help would be appreciated. Kamoxb

  • I HAVE A QUESTION ABOUT USING CASE STRUCTURE

    Can I compute a percentage using case structure? In the following query below, I have been able to use CASE STRUCTURE to add to a counter when days were between 0 and 30, or when days were between 31 and 60 or when days were between 61 and 90 or when

  • What do I need to do to download Firefox 3.6.16?

    I am running Firefox 3.6.13 on a Macbook OS 10.6.7. When the update for FF 3.6.16 became available, I began getting a pop up telling me to download it. Every time I try to do this, it keeps trying to download, but nothing happens. The message says "D

  • IPod Nano 7th Gen not appearing in itunes

    My ipod nano 7th gen is not appearing in itunes, either the new one or the old. it is registered on the computer, but I can't access it through itunes. It was woring a few weeks ago. I have Windows 8 and the newest itunes.