java - ArrayList Retrieve First and Last Result without Sorting ArrayList -
java - ArrayList Retrieve First and Last Result without Sorting ArrayList -
i have arraylist of string, , retrieve first , lastly result of names after calculating order of alphabets. below code snippet:
arraylist<string> list = new arraylist<string>(20); list.add("charles darwin"); list.add("albert einstein"); list.add("issac newton"); list.add("tony hoare"); list.add("grace hopper"); list.add("edgar dijkstra"); list.add("ada lovelace"); list.add("charles babbage"); list.add("stephen hawking"); string biggest = ""; string smallest = ""; (int = 0; < list.size(); i++) { string first = list.get(i); (int j = 0; j < list.size(); j++) { string sec = list.get(j); if (!first.equalsignorecase(second)) { if (first.comparetoignorecase(second)>0){ biggest=first; } if (first.comparetoignorecase(second)<0){ smallest=first; } } } } system.out.println(biggest); system.out.println(smallest);
i able retrieve every value comparison, however, results showing stephen hawking biggest , smallest.
my desired results ada lovelace biggest , tony hoare smallest.
your conditional statements seem wrong.
if (first.comparetoignorecase(second)>0){ biggest=first; } if (first.comparetoignorecase(second)<0){ smallest=first; }
you're comparing element in outer loop element in inner loop. never create comparing against biggest
, smallest
.
this should help find biggest , smallest string in list.
string biggest = list.get(0); string smallest = list.get(0); (int = 1; < list.size(); i++) { if(list.get(i).comparetoignorecase(biggest) > 0) biggest = list.get(i); if(list.get(i).comparetoignorecase(smallest) < 0) smallest = list.get(i); }
alternatively, can utilize collections.min() , max() stated in 1 of other answers.
java arrays sorting netbeans arraylist
Comments
Post a Comment