Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   ASP .Net (http://www.velocityreviews.com/forums/f29-asp-net.html)
-   -   Sorting an array list containing objects? (http://www.velocityreviews.com/forums/t117069-sorting-an-array-list-containing-objects.html)

Rob Meade 01-10-2006 02:29 PM

Sorting an array list containing objects?
 
Dear all,

I have a class which contains an arraylist populated with other objects, for
example:

PrescriptionQueue - containing multiple instances of Prescription

I have the need on my web page to display this data which I have done,
however, now I would like to sort it based on a data item/direction selected
by the user from the web page.

I have separate data and display layers and was planning on doing my "sort"
in my display layer.

In order to do this I figured I would need to pull the Prescription objects
back out from my PrescriptionQueue, perhaps pop them into a DataTable/View
to make the sorting easier.

I then wondered whether it would be better to try and sort the
PrescriptionQueue itself.

Got a little lost after this point :o)

From what I've seen of the ArrayList.Sort you can do this quite easily:

ArrayList.Add("Red")
ArrayList.Add("Blue")
ArrayList.Add("Green")

ArrayList.Sort()

etc, but thats based on the value directly inside those elements of the
arraylist, is it possible to do something more like this:

For Each Prescription In PrsecriptionQueue

ArrayList.Add(Prescription)

Next

ArrayList.Sort(Prescription.PatientSurname)

I appreciate the above example is probably not syntactically correct, so
please excuse me, I am merely trying to give an example of what I would like
to achieve.

If anyone has any thoughts/suggestions as to doing this a better way I would
be most grateful - another idea I had was requesting the sort order when I
"get" my data in the first place.

Any help appreciated,

Regards

Rob
PS: Happy New Year!



Mantorok 01-10-2006 02:36 PM

Re: Sorting an array list containing objects?
 
Look at the static method Array.Sort, you will have to break up your array
into 2 - one for keys and one for the corresponding values.

It's not particularly trivial but you can write your own method to deal with
it.

Kev

"Rob Meade" <ku.shn.tsews.thbu@edaem.bor> wrote in message
news:%23o$hBJfFGHA.1528@TK2MSFTNGP10.phx.gbl...
> Dear all,
>
> I have a class which contains an arraylist populated with other objects,
> for example:
>
> PrescriptionQueue - containing multiple instances of Prescription
>
> I have the need on my web page to display this data which I have done,
> however, now I would like to sort it based on a data item/direction
> selected by the user from the web page.
>
> I have separate data and display layers and was planning on doing my
> "sort" in my display layer.
>
> In order to do this I figured I would need to pull the Prescription
> objects back out from my PrescriptionQueue, perhaps pop them into a
> DataTable/View to make the sorting easier.
>
> I then wondered whether it would be better to try and sort the
> PrescriptionQueue itself.
>
> Got a little lost after this point :o)
>
> From what I've seen of the ArrayList.Sort you can do this quite easily:
>
> ArrayList.Add("Red")
> ArrayList.Add("Blue")
> ArrayList.Add("Green")
>
> ArrayList.Sort()
>
> etc, but thats based on the value directly inside those elements of the
> arraylist, is it possible to do something more like this:
>
> For Each Prescription In PrsecriptionQueue
>
> ArrayList.Add(Prescription)
>
> Next
>
> ArrayList.Sort(Prescription.PatientSurname)
>
> I appreciate the above example is probably not syntactically correct, so
> please excuse me, I am merely trying to give an example of what I would
> like to achieve.
>
> If anyone has any thoughts/suggestions as to doing this a better way I
> would be most grateful - another idea I had was requesting the sort order
> when I "get" my data in the first place.
>
> Any help appreciated,
>
> Regards
>
> Rob
> PS: Happy New Year!
>
>




Karl Seguin 01-10-2006 02:45 PM

Re: Sorting an array list containing objects?
 
..Sort accepts an IComparer that tells it how to compare.

arr.Sort(ctype(new UserComparer(), IComparer))

public class UserComparer
implements IComparer

public function Compare(x as object, y as object) as integer implements
IComparer.Compare
return string.Compare(ctype(x, user).Name, ctype(y, user).Name)
end function

end class


Take a look at:
http://msdn.microsoft.com/library/de...sorttopic2.asp

Karl
--
MY ASP.Net tutorials
http://www.openmymind.net/


"Rob Meade" <ku.shn.tsews.thbu@edaem.bor> wrote in message
news:%23o$hBJfFGHA.1528@TK2MSFTNGP10.phx.gbl...
> Dear all,
>
> I have a class which contains an arraylist populated with other objects,
> for example:
>
> PrescriptionQueue - containing multiple instances of Prescription
>
> I have the need on my web page to display this data which I have done,
> however, now I would like to sort it based on a data item/direction
> selected by the user from the web page.
>
> I have separate data and display layers and was planning on doing my
> "sort" in my display layer.
>
> In order to do this I figured I would need to pull the Prescription
> objects back out from my PrescriptionQueue, perhaps pop them into a
> DataTable/View to make the sorting easier.
>
> I then wondered whether it would be better to try and sort the
> PrescriptionQueue itself.
>
> Got a little lost after this point :o)
>
> From what I've seen of the ArrayList.Sort you can do this quite easily:
>
> ArrayList.Add("Red")
> ArrayList.Add("Blue")
> ArrayList.Add("Green")
>
> ArrayList.Sort()
>
> etc, but thats based on the value directly inside those elements of the
> arraylist, is it possible to do something more like this:
>
> For Each Prescription In PrsecriptionQueue
>
> ArrayList.Add(Prescription)
>
> Next
>
> ArrayList.Sort(Prescription.PatientSurname)
>
> I appreciate the above example is probably not syntactically correct, so
> please excuse me, I am merely trying to give an example of what I would
> like to achieve.
>
> If anyone has any thoughts/suggestions as to doing this a better way I
> would be most grateful - another idea I had was requesting the sort order
> when I "get" my data in the first place.
>
> Any help appreciated,
>
> Regards
>
> Rob
> PS: Happy New Year!
>
>




sarangasl 10-14-2009 11:10 AM

Sort Objects in ArrayList, it is simple.
 
Nice !!!!!!!!

Try this too,

sarangasl.blogspot.com/2009/10/sort-object-arraylist-in-c.html

rahul891 11-04-2012 04:29 AM

Sorting of ArrayList
 
Quote:

Originally Posted by Rob Meade (Post 507047)
Dear all,

I have a class which contains an arraylist populated with other objects, for
example:

PrescriptionQueue - containing multiple instances of Prescription

I have the need on my web page to display this data which I have done,
however, now I would like to sort it based on a data item/direction selected
by the user from the web page.

I have separate data and display layers and was planning on doing my "sort"
in my display layer.

In order to do this I figured I would need to pull the Prescription objects
back out from my PrescriptionQueue, perhaps pop them into a DataTable/View
to make the sorting easier.

I then wondered whether it would be better to try and sort the
PrescriptionQueue itself.

Got a little lost after this point :o)

From what I've seen of the ArrayList.Sort you can do this quite easily:

ArrayList.Add("Red")
ArrayList.Add("Blue")
ArrayList.Add("Green")

ArrayList.Sort()

etc, but thats based on the value directly inside those elements of the
arraylist, is it possible to do something more like this:

For Each Prescription In PrsecriptionQueue

ArrayList.Add(Prescription)

Next

ArrayList.Sort(Prescription.PatientSurname)

I appreciate the above example is probably not syntactically correct, so
please excuse me, I am merely trying to give an example of what I would like
to achieve.

If anyone has any thoughts/suggestions as to doing this a better way I would
be most grateful - another idea I had was requesting the sort order when I
"get" my data in the first place.

Any help appreciated,

Regards

Rob
PS: Happy New Year!


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class Person implements Comparable{
String Last_Name=null;
String First_Name=null;
public Person(String F,String L){
this.First_Name=F;
this.Last_Name=L;
}

public String getFirst_Name() {
return First_Name;
}

public void setFirst_Name(String first_Name) {
First_Name = first_Name;
}

public String getLast_Name() {
return Last_Name;
}

public void setLast_Name(String last_Name) {
Last_Name = last_Name;
}

@Override
public String toString() {
return Last_Name+", "+ First_Name+";";
}

public int compareTo(Object obj) {
// TODO Auto-generated method stub
Person person= (Person) obj;
int compareQuantity = Last_Name.compareTo( person.getLast_Name());

//ascending order
return compareQuantity;

}

public boolean equals(Object obj) {
if (!(obj instanceof Person)) {
return false;
}
Person emp = (Person) obj;
return First_Name.equals(emp.getFirst_Name())
&& Last_Name.equals(emp.getLast_Name());
}

public static void main(String arg[]){
ArrayList al=new ArrayList();
al.add(new Person("rom","couch"));
al.add(new Person("james","boucher"));

System.out.println("al is --->"+al);
Collections.sort(al);
System.out.println("al is --->"+al);

}

}


class PersonComparator implements Comparator{
public int compare(Object obj1, Object obj2) {
Person emp1 = (Person) obj1;
Person emp2 = (Person) obj2;

int nameComp = emp1.getLast_Name().compareTo(emp2.getLast_Name()) ;

return ((nameComp == 0) ?
emp1.getFirst_Name().compareTo(emp2.getFirst_Name( )) :
nameComp);
}
}


All times are GMT. The time now is 12:56 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.