Sorting in Ascending and Descending order with .toStorted() and .reverse()

Until now my validation of sorted objects has been quite minimal. I’ve gotten by with very simple tests such as IF A>B, IF B>C. However, there is a much better and simpler way to check sorting using the Groovy functions of .toSorted().

numberList=numberList.toSorted()

To make proper use of this, I would read values from a table into a my own List. I would then duplicate that List, sort it, then compare if the two were a match to each other.

However, .toSorted() returns a list in Ascending order. While this is extremely handy, how do you get the List in Descending order?

A second command, .reverse() can be used to quite literally, reverse the list. Since the list is already sorted Ascending, the reverse of that would be Descending.

numberList=numberList.reverse()

In combination with a sorted list it’s not uncommon to need to remove duplicates. The .toUnique() command does just that. The sort of the List is maintained with the duplicate items remove. The List now has the unique items available.

repeatedList=repeatedList.toUnique()

Listed below are a couple of examples to illustrate how each works. Three Lists are created, one with numbers, another with food names and a final with repeated values. The first two are sorted so as to be in Ascending order. The List is then reversed to make it Descending. For the repeated List, the duplicate entries are remove so that the unique spellings for “to” and “for” are kept.

//Lists
numberList = [87453, 974639, 6394, 187298, 435, 205735, 18, 43298, 11340625]
nameList=['Tangerine','Orange','Carrot','Watermelon','Pear','Grape','Banana']
repeatedList=['to','too','two','for','four','fore','too','four','four','for','two']

//Sort Ascending
numberList=numberList.toSorted()
nameList=nameList.toSorted()
log.logWarning('Ascending:=' + numberList)
log.logWarning('Ascending:=' + nameList)

//Sort Descending
numberList=numberList.reverse()
nameList=nameList.reverse()
log.logWarning('Descending:=' + numberList)
log.logWarning('Descending:=' + nameList)

//Unique List
repeatedList=repeatedList.toUnique()
log.logWarning('Unique List:=' + repeatedList)

Output:
Ascending:=[18, 435, 6394, 43298, 87453, 187298, 205735, 974639, 11340625]
Ascending:=[Banana, Carrot, Grape, Orange, Pear, Tangerine, Watermelon]
Descending:=[11340625, 974639, 205735, 187298, 87453, 43298, 6394, 435, 18]
Descending:=[Watermelon, Tangerine, Pear, Orange, Grape, Carrot, Banana]
Unique List:=[to, too, two, for, four, fore]

Other articles of interest:

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Comments
  • How To Disable the Quicken Registration Prompt (15)
    • Charlie Fellenbaum: Yay, thanks, and that worked for Quicken 2006 as well.
    • Ken: This didn’t work for me. I have 2006. I installed on a new laptop. I must have registered before, don’t remember. I tried to register this time, but got an error message. I’d rather not registered, though. I use...
    • Neil Murphy: I discovered that early on. I’m using 2001.
    • Jeremy: Thank you so so so much. I am still using Quicken 2010 because Intuit didn’t want to properly support users abroad anymore (never mind that they only link to US banks for transaction downloads; they didn’t want my...
    • Richard: I have Quicken 2016 Home & Business and when I use Shift + CTRL I can’t see any Tools option; All I can see is the original menu items of File & About. Might you be able to offer any advice?
  • Quasi Performance/Load Testing with Katalon Studio (1)
    • Anthony: I have done this with 100 plus machines at the same time and it worked well and provided some useful feedback.
  • A Try Catch example in Katalon Studio (3)
    • Venkatesh: Hi Don Pedro Can you share me sample project ….which consist of basic to advanced stuff…If your github or gitlab url aso present please share… As I am beginer to this I need to learn lot
    • Don Pedro: Hi Lucas. Thank you for the kind comments. I would be happy to help. Let me know how I could be of assistance.
    • Lucas: Thanks for sharing a lot of Katalon tips and tricks. The Katalon team highly appreciate your support and feedback. To make Katalon Studio better and be the best free automation solution for testing community, we wish to coordinate...
  • Securely storing passwords and login details with Set Encrypted Text in Katalon Studio (1)
    • Agus: Hi Don, Is there a way to set the encrypted text to be used in the ‘WebUI.authenticate̵ 7; method? Basically I am trying to encrypt the password that is passed to the ‘WebUI.authenticate̵ 7; method. Thank you.
  • Katalon Studio – Manual View – The start of a test script (2)
    • ben: Hello Don Great Website. Keep up the work. I learnt a lot. cheers Ben.
    • Lucas: Hi Don Pedro, Thanks for sharing a lot of great articles related to Katalon Studio and Selenium. I am Lucas from Katalon team. From your point of view, we’ve learnt alot to improve our product and add more valuable features...
  • Another success with Katalon Studio (1)
    • Mahesh Joshi: Hi Don, I just started following your blog in regards to katalon. I want to introduce katalon studio at my work we do manual testing at work at the moment. What approach I should use for proof of concept with katalon for...
  • What went wrong with Crime City? (34)
    • G D: One thing I have noticed is the awkwardness of items and the attack points and how you can earn them. I was pretty pathetic with attack points and then I played that limited time boss and got weapons that had attack points in the...
  • Disable the Quicken 2012 Registration Prompt (1)
    • Scott: Thanks this worked great and is better then having to upgrade to a subscription!