Friday, March 26, 2010

Array List Sorting Issue


Recently, i was coding for an application and came across a problem where i need to sort an ArrayList in an alphabetical order. However, that sounded quite easy as because sorting can easy with single arraylist. But, i was in a situation where i had two different ArrayLists with multiple attributes. So, what i did is that i kept a delimeter to distinct all my 3 values and then i added them into a temporary list.

for(int j=0;j
tempList.add(myBean.getOne() + "*" + myBean.getTwo() + "*" + myBean.getThree());

then i used collection's sort method to sort them up in an alphabetical form.

Collections.sort(tempList,new MyComparator());  

I used inner class called Mycomparator to compare.

 class MyComparator implements Comparator {   
         public int compare(Object o1,   
                            Object o2) {   
            String s1 = o1.toString().toUpperCase();   
            String s2 = o2.toString().toUpperCase();   
            int counter = 0;   
            for (counter=0;counter
            String temp1 = s1.substring(counter);   
            s1 = s1.substring(0,counter);   
            for (counter=0;counter
            String temp2 = s2.substring(counter);   
            s2 = s2.substring(0,counter);   
            int max = (temp1.length() > temp2.length()) ? temp1.length() : temp2.length();   
            char[] pad = new char[max-temp1.length()];   
            temp1 = String.valueOf(pad) + temp1;   
            pad = new char[max-temp2.length()];   
            temp2 = String.valueOf(pad) + temp2;   
            s1 = s1 + temp1;   
            s2 = s2 + temp2;   
         public boolean equals(Object o1,   
                               Object o2) {   
            String s1 = o1.toString();   
            String s2 = o2.toString();   

And finally,. the problem got resolved, i got my list ordered in alphabetical form.

No comments: