Sorting an array of Objects based on a variable inside each object

I have a class public class handInfo
          //VARS
               int highC = 0;
               int hVal = 0;
               int numHand = 0;
          //CONSTRUCOTRS
               public handInfo()
          //METHODS
               public void setHC(int hc)
                         highC = hc;
               public void setHV(int hv)
                         hVal = hv;
               public void setNH(int nh)
                         numHand = nh;
               public int getHC()
                         return highC;
               public int getHV()
                         return hVal;
               public int getNH()
                         return numHand;
     }now i have an array, handInfo[] hands = new handInfo[4];
                    hands[0] = new handInfo();
                    hands[0].setHC(HV);
                    hands[0].setNH(1);
                    hands[0].setHV(Val);
                    hands[1] = new handInfo();
                    hands[1].setHC(HV2);
                    hands[1].setNH(2);
                    hands[1].setHV(Val2);
                    hands[2] = new handInfo();
                    hands[2].setHC(HV3);
                    hands[2].setNH(3);
                    hands[2].setHV(Val3);
                    hands[3] = new handInfo();
                    hands[3].setHC(HV4);
                    hands[3].setNH(4);
                    hands[3].setHV(Val4);i need to know how to sort this array, based off hVal...
D:

Write a Comparator and call Arrays.sort(array, Comparator).

Similar Messages

  • I need to sort an array of strings based on the number in each string.

    Basically, I have a directory of files that all have the same name but each with a different number on the end.
    example: image 1.jpg, image 2.jpg, etc.
    When I use the List Directory function that returns an array of strings containing the file names in the directory, they don't come out in a 1, 2, 3, order like they appear in the directory. It sorts them character by character so that they come out like: 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, 21, 22 etc.
    Is there a simple way of sorting this array of strings with the file names (as above) so that they are in numerical order?

    It's a while since this thread was started, but I am sure others will have use for this so here goes:
    The in-built array sort function sorts the strings the same way DOS and Windows do. Microsoft has fixed this in the Explorer that comes with XP, however the rest of the OS(s) still sorts the old way.
    The attached "AlphaLogical String Array Sort" VIs will sort strings arrays the same way as the new XP Explorer. There are three different implementations of the sorting, one based on the Insertion sort algorithm, a Quick Sort based on recursive calls (the most elegant way, but unfortunately LabVIEW has too much overhead when doing recursive calls so this is actually a very slow alternative) and finally the fastest; a stack based Quick Sort. There is also a test VI that will show you how the different implementations perform.
    I had not used recursive calls in LV much until I made the attached quick sort and was a bit disappointed by the fact that it is so slow, but it's a good learning example...The ability to do recursive calls this way was introduced in LV7 I believe...There is an example here on the zone that shows how you can calulate a factorial by using recursive calls, however - unlike for the quick sort (normally) - recursive calls are actually not the optimal solution for that calculation.
    Message Edited by Mads on 09-13-2005 02:30 AM
    MTO
    Attachments:
    AlphaLogical Sorting.zip ‏142 KB

  • How to scale objects in a layer while keeping each object in the same position

    I have a map with symbols on it, placed precisely where they need to be. Is there a way to scale all of the objects in a layer or group so that they are larger, but without treating them as a layer that is stretched out to scale proportionately? Basically, how could I make each symbol larger as though each is being scaled from their centers?
    I've tried to select a layer so that each object is selected, then transforming them (specifiying a scale percentage). As a result, the objects are enlarged, but this produces the same results as a normal click and drag from the corner registration point. Any ideas?

    Yes, o.k., sort of. But you are not allowed to select individual objects that are parts of a group or groups. It's also quite all right to select, say, Same Fill Colour and Transform Each will work as long as the selection does not contain parts of groups.
    To my way of thinking it would be better if it worked the other way, with anything selected with the Direct Selection tool, because sometimes you want to transform things even though they are parts of groups. But that's just the way the Illy cookie crumbles.

  • Diff between object based and ob. oriented

    diff between object based and ob. oriented

    Object-oriented requires at least three factors:
    1. Encapsulation: Combining data and the methods that manipulate the data into a self-contained unit called an "object" in which the data is hidden from the user and only the method interface is visible.
    2. Inheritance: Ability of a class to extend the features of another class by obtaining all the public features of the other class while adding its own specialized features (Example: Great Dane inherits from Dog)
    3. Polymorphism: The ability to perform "late binding" by invoke methods of a subclass on behalf of its superclass. (Polymorphism includes other things and it difficult to explain.
    If a language does not include all three, it is called "object-based." Visual Basic 6 is object-based, because it allows you to define classes that encapsulate, but doesn't support an inheritance hierarchy nor polymorphism.

  • SSIS Programming- How to declare a variable of type Object?

    Hello, I have a very specific coding question. I am trying to create a pkg using SSIS Object model. I am trying to create a variable of type Object. But I could not find any reference in KB or forums on creating variable of this data type.
    Example:
    // Create the package.
    Application a = new Application();
    Package p = new Package();
    p.Name = "MyDataExtractPkg";
    //Add Variables to the pkg
    Variables pkgVars = p.Variables;
    Variable var8 = p.Variables.Add("varHour", false, "User", (System.Int16)0);
    Variable var9 = p.Variables.Add("varHourDiff", false, "User", 0);
    Variable var10 = p.Variables.Add("varIntervalWaitInMS", false, "User", 5000);
    Variable var11 = p.Variables.Add("varJobCnt", false, "User", 0);
    Variable var12 = p.Variables.Add("varjobID", false, "User", 0);
    Variable var13 = p.Variables.Add("varJobRS", false, "User", (System.Object)0);
    Variable var14 = p.Variables.Add("varProcessDate", false, "User", "abc");
    As you can see I was able to successfully variables of Type Int16, Int32(default) & String.
    But I need to create a variable of type Object for "varJobRS" and above code is generating int. Appreciate any direction or help on how to create Object variable type.
    Thanks,
    DW Guy

    I have been continuing with my work with intention to approch MS, but I came across the solution in one of the Blog site. The solution is :
    var13.Value =
    new
    Object();
    This converts the variable of type Object.
    The link that gave this soluion is:
    http://ssisbi.com/building-ssis-packages-programmatically-part-5/
    Thanks,
    DW Guy

  • Sorting an array of objects

    hi there, i have to sort an array of object that looks like:
    surname, name, age, height
    well i have to sort them alphabetically like this:
    based on the surnames, if the surnames are the same than sort on the base of the names; if the names are the same sort them on the base of age and so on. If all the fields are the same the order is non important.
    Well I am not sure how I can do it using the Comparable Interface? as it is an interface i don't have any idea how to implement it

    This search took 2 seconds to do. And it's using your exact subject header. Next time try searching, instead of waiting forever hoping that someone will help you.
    http://search.java.sun.com/search/java/index.jsp?col=javaforums&qp=&qt=%2B%22sorting+an+array+of+objects%22

  • Java sorting the array of objects

    Hi ,
    I have a question on sorting objects in java.
    I have a java interface some thing like :
    public classmyObj extends Nullable
        private int objId;
        private Datemydate;
        public int getObjID();
        public Date getmyDate();
        public int getISecondD();
      }I need to create the array of the objects of this class that are sorted on the ObjID:
    classmyObj[] collectionObjects
    I need to pass this collectionObjects to another function.
    Now how should I sort these objects based on the ObjID on collection?
    Please help with this!
    Thanks

    neeto wrote:
    Hi ,
    I have a question on sorting objects in java.
    I have a java interface some thing like :You mean class?
    >
    public classmyObj extends Nullable
    private int objId;
    private Datemydate;
    public int getObjID();
    public Date getmyDate();
    public int getISecondD();
    }I need to create the array of the objects of this class that are sorted on the ObjID:
    classmyObj[] collectionObjects
    I need to pass this collectionObjects to another function.
    Now how should I sort these objects based on the ObjID on collection?Create a comparator and use it in a call to Collections.sort (or Arrays.sort if you have an array)

  • Sorting an array of objects and returning another variable

    Hi there,
    Bit stuck on this one I wonder if anyone can help..
    I have an object array into which I've pushed a number of objects with different variables :-
    myArray.push({myRef: 1, myValue: "W"});
    I can sort the array in numerical order using :-
    myArray.sortOn("myRef", Array.NUMERIC);
    but after sorting I would like to collapse the array using something along the lines of :-
    myArray.join("");
    to join the OTHER variable (myValue)...
    Is it possible to do this without pushing every instance of 'myValue' to another array and then joining that ?
    Many Thanks in advance
    Martin

    Hi kglad,
    I really appreciate you helping, but I have had to completely change my approach to this problem, therefore I will be marking the question as answered !!
    Thanks again

  • Sorting an array of objects by an attribute

    I'm pretty new to java so don't laugh if you think my question is real easy!
    I have an array of objects and I want to sort them according to an integer value stored in each object. Any help would be very much appreciated.
    Thanks for looking!!

    Perhaps an example would help:
    public class Person {
      private String name;
      private int age;
      public void setName(String name) { this.name = name; }
      public void setAge(int age) { this.age = age; }
      public String getName() { return name; }
      public int getAge() { return age; }
    =====
    public class PersonAgeSorter implements Comparable {
      public int compare(Object o1, Object o2) {
        Person p1 = (Person) o1;
        Person p2 = (Person) o2;
        Integer i1 = new Integer(p1.getAge());
        Integer i2 = new Integer(p2.getAge());
        return i1.compareTo(i2);
    =====
    public class PersonNameSorter implements Comparable {
      public int compare(Object o1, Object o2) {
        Person p1 = (Person) o1;
        Person p2 = (Person) o2;
        String s1 = p1.getName();
        String s2 = p2.getName();
        return s1.compareTo(s2);
    =====
    import java.util.Arrays;
    public class SortExample {
      public static void main(String [] args) {
      Person p1 = new Person();
      Person p2 = new Person();
      p1.setName("Tom");
      p1.setAge(22);
      p2.setName("Nancy");
      p2.setAge(33);
      Person [] people = new Person[2];
      people[0] = p1;
      people[1] = p2;
      Arrays.sort(people, new PersonAgeSorter());
      Arrays.sort(people, new PersonNameSorter());
    }

  • How to sort an array of objects?

    I need to sort an array of objects. Each object has serial number, and other properties. I need to sort it by serial number.

    Do a java.util.Arrays.sort(). The method has quite a few overloads, so I'll give a complete example this time:import java.util.*
    public class SortDemo {
        public static void main(String args) {
            SimpleObject[] objs = new SimpleObject[10];
            for (int i=0; i<10; i++)
                objs=new SimpleObject();
    dump(objs);
    Comparator c = new SimpleComparator();
    Arrays.sort(objs, c);
    dump(objs);
    static void dump(Object[] o) {
    for (int i=0; i<o.length; i++)
    System.out.print(o[i] + " ");
    /** Object to demonstrate comparing with **/
    class SimpleObject {
    private int n = (int) (10*Math.random());
    public String toString() {
    return String.valueOf(getNumber());
    public int getNumber() {return n;}
    /** The custom comparator **/
    class SimpleComparator implements Comparator {
    public int compare(Object o1, Object o2) {
    return ((SimpleObject) o1).getNumber() - ((SimpleObject) o2).getNumber();
    public boolean equals(Object o) {return false;}
    }I could have made the SimpleObject class "Comparable", but a design like this allows more flexibility so I decided to use another class for the Comparator.

  • Help sorting an array of objects needed please.

    I am trying to sort the array Students[] in descending order of Fees due. Using the code below I get a null pointer error at runtime. The array is not completely full, it has 20 cells, but the variable studentArrayCounter holds the number of used cells. The 'getFeesDue()' code returns an integer value.
    Any help is appreciated.
         // Sort Student Records Method
               public void sortStudentRecords()
                int loopCount = 0;
               for (loopCount = 1; loopCount < studentArrayCounter; loopCount ++)
              if(Students[loopCount].getFeesDue()>Students[loopCount-1].getFeesDue())
                   SortStudents[0]=Students[loopCount-1];
                   Students[loopCount-1]=Students[loopCount];
                   Students[loopCount]=SortStudents[0];
         }

    Also, unless the excersize is to write a sort algorigthm (which I kinda doubt) you should use Arrays.sort
    Arrays.sort(Students, new Comparator() {
      public int compare(Object o1, Object o2) {
        Student s1 = (Student) o1;
        Student s2 = (Student) o2;
        return s1.getFeesDue() - s2.getFeesDue();
    });

  • Need help sorting 2 arrays linked by their indexes

    I have 2 arrays that have been linked by the index of both arrays. The first array has to be sorted alphabetically, so I need a way to sort the 2nd array so that the indices match up again with the first array.
    Now, I cannot change my ArrayList (i.e. TreeSet, List, etc.) since there is lots of code that would have to be changed. Here is my test code. Hopefully everyone is a fan of the television show Friends so that you can see how if I sort the firstName Array alphabetically, then I have to have the 2nd array sorted to be "linked" back to the first array based on the index. I am looking for ideas, but if you have simple code, that would be great too.
    import java.util.*;
    public class Test
         public static void main(String[] args)
              System.out.println("BEGIN TEST...");
    Test test = new Test();
    test.beginTest();
    System.out.println("\nTEST COMPLETE!");
         public Test(){}
         public void beginTest()
              ArrayList firstName = new ArrayList();
              ArrayList lastName = new ArrayList();
              //Add to firstName ArrayList
              firstName.add("Ross");
              firstName.add("Chandler");
              firstName.add("Rachel");
              firstName.add("Phoebe");
              firstName.add("Joey");
              //Add to lastName ArrayList
              lastName.add("Geller");
              lastName.add("Bing");
              lastName.add("Green");
              lastName.add("Buffay");
              lastName.add("Tribbiani");
              try
                   System.out.println("TESTING...\n");
                   for(int index=0; index<firstName.size(); index++)
                        String first = firstName.get(index).toString();
                        String last = lastName.get(index).toString();
                        System.out.println("Hi, I am " + first + " " + last + ".");                    
              catch(Exception X) { System.out.println("EXCEPTION! "+X); X.printStackTrace(); }
    }

    Keeping the list in synch is conceptually easy.
    Basically anything you do to the one List, you have to do to the other in order to keep them consistent.
    How are you sorting your "firstnames" list?
    Using the Collections.sort method, or some manual coding?
    Would it be possible to change your datastructure from "parallel arrays" to "List of people objects"
    iepublic class Person {
      String firstName;
      String lastName;
      public Person(String firstName, String lastName){
        this.firstName = firstName;
        this.lastName = lastName;
      // appropriate getter/setter methods
    }Then you could build up your list like this:
    List friends = new ArrayList();
    friends.add(new Person("Ross", "Geller"));
    friends.add(new Person("Chandler", "Bing"));
      ...Now when you sort the list, the last name always goes with the first name because they are in the same object.
    You then write different Comparator objects to impose different orderings.
    Hope this helps,
    evnafets

  • Sort String Array by Date

    I use the following code to populate a string array:
    File dirFile          = new File("C:\\somedir");
    String fileImport[]      = dirFile.list();
    This gives me a string array with a whole bunch of files in the following format:
    XXXDDMMYYHHMISS.xml
    What I need to know is what is the easiest way to sort this array based on this date format, or any date format, in the ascending order, so that when I am loading my XML files, I get the oldest one first.
    Appreciate any input.
    Sam

    Use the String name of the file (the Date part), together with a java.text.SimpleDateFormat object to parse() the String. You have to set the formatter with a pattern - these are explained fully in the Javadocs for the SimpleDateFormat class. After parsing, you will have java.util.Date objects for each of the files - you can then use these as keys in a java.util.SortedMap (the values would be the files) - the natural ordering of dates will ensure that they are ordered appropriately

  • Setting the frame of an object based on collisions

    I'm almost done with a project I've been working on for a while and need help with the Actionscript.  I first got help here: http://forums.adobe.com/message/4706107#4706107 ; basically what I set up was that an object would change its frame based on what other objects it was colliding with.  I'm working with hundreds of objects that will change based on their position onscreen so it's necessary to set up a script to do this automatically.  I don't know Actionscript at all, but I got a lot of help and we finally came up with this code:
    stage.addEventListener(Event.ENTER_FRAME, checkForHit);
    var objects:Array = new Array(obj, obj2);
    function checkForHit():void {
         for(var i=0; i<objects.length; i++){
              for(var n=1; n<22; n++){
                   if(objects[i].hitTestObject(this["invisibleObj"+String(n)]){
                         objects[i].gotoAndStop(n);
                         break;
    The problem I'm running into now is that if an object specified in "new Array" isn't onscreen, none of the rest of the objects respond to the code.  Is there a way to make this code work regardless of whether all objects specified are onscreen or not?  Also, would there be a way to set the new Array objects to something like "obj*" so I didn't have to actually type in every single one of the hundreds of objects I'll be placing onscreen?
    Thanks so much for the help!  I'm really stuck without it.

    If you place all the objects in a container they will still be able to be hitTested with objects outside of the container.  If the objects are all passing by, then having them in the container might ease your burden since you could nove the container rather than each individual object.
    To make the container just create an empty movieclip (or Sprite) symbol and place it on the stage at 0,0.  Open it up for editing and plant your 'object's as needed inside of it -  no names needed unless you have other need for them.  Then when you want to do your hitTesting you loop thru the children of the container.  Here's how the code changes if you do that and assign a name to that container of "objectContainer" (name it as you please)...
    function checkForHit():void {
         for(var i=0; i<objectContainer.numChildren; i++){
            var obj:MovieClip = MovieClip(objectContainer.getChildAt(i));
              for(var n=1; n<22; n++){
                   if(obj.hitTestObject(this["invisibleObj"+String(n)]){
                         obj.gotoAndStop(n);
                         break;

  • Sort Grid array and find the 4 corner dots.

    What I am trying to do is this:  I am using NI Visions find circles vi on a grid array or dots which gives me a 1D array of clusters.  In these clusters is the x,y coordinates of the grid dots that have been found.  I need to figure out which ones are the 4 corner dots and the 4 center dots along the edges.  The problem is the 1D array the find circle routine outputs is not in a logical order.  My grid could possibly change in size too.  Right now it is 14x12 but could be 13x12 or 14x13 or something like that. 
    I have found that if I send the 1D array of clusters though the sort 1D array it will sort it from top to bottom left to right, which I will then know that teh 1st element is the top left corner and the last element is the bottom right corner, but I am not sure what the easiest way is to figure out the rest of them. 
    Any help would be appreciated.
    I am using labview 7.1 and NI Vision 8.0
    Thanks
    Brad
    Brad Remenak
    Certified LabVIEW Architect

    Hi Brad,
    If you want to get the coordinates of specific dots on the image, you
    can search for the dots using different ROIs that only focus on certain
    areas of the image (ex: use an ROI that only searches in the
    upper-right corner so that you know the 1 match that shows up is
    definitely there).  Without knowing how consistent the dot
    locations are, I would suggest dividing up the ROI dimensions based on
    the variable size of the grid.
    Hope this helps,
    Irene Chow
    National Instruments

Maybe you are looking for

  • Sort images in Organizer by file name?

    I'm running PSE 6 on XP. I have a group of about 80 photos that came from scanning of a hard copy photo album. I have tagged all the pictures with a unique tag. I was wondering if I could change the 'view' of these images so that they would be displa

  • HELP !!!  What do I do now ????

    After downloading updates, wanted to sync itouch. Screen shows i-tunes logo (cd with music notes), and usb cable. Does nothing !!!! Have turned it on and off with no results. Can't do anything else. What do I do now?????

  • Repair a wrong Music folder Backup

    I backup my iTunes Music folder from iMac 10.4.11 (iTunes 8.0) unto an iBook 10.3.9 (iTunes 7.7.1) A stupid thing to do ! iTunes 7.7.1 doesn't recognize the new iTunes 8.0 Library. Is a faster or easy way to recover my "old" iTunes Music folder on th

  • Declaring namespaces ONLY on root element during serialization

    I'm using JAXP 1.3 and I'd like to be able to serialize a document so that the namespace declarations are only specified once on the root element and not repeated throughout the document. I'm working on a journal publication system and the request ca

  • Screen saver won't start since Lion upgrade. Two different machines, same issue.

    Screen saver won't start since Lion upgrade. Two different machines, same issue. Help