Java comparator sorting strings

Java Sort String Array Example

Java String array sort example shows how to sort string array in Java using Collections class and custom comparator in descending and ascending orders.

How to sort String array in Java?

There are several methods using which you can sort an array of strings.

1) Sort string array using the Arrays class

A string array can be sorted using the sort method of the Arrays class.

This method sorts an array using the natural ordering of the array elements in ascending order.

[Accenture, Aztec, Browser, CAke, PlayStation, Playhouse, Raphael, Yokohama, Zintec, ak56, boB, cEntury, nIntendo, roB, xBox, zOo]

2) Using the Collections class

You can also use the sort method of Collections class along with the asList method to sort an array.

This method sorts the list in ascending order according to the natural order of its elements.

Note: The sort method of the Collections class accepts a List as an argument. To sort an array of strings, you first need to convert array to list using the asList method of the Arrays class.

[Accenture, Aztec, Browser, CAke, PlayStation, Playhouse, Raphael, Yokohama, Zintec, ak56, boB, cEntury, nIntendo, roB, xBox, zOo]

Please note that the asList method provides an abstract list view on the top of the original array. Hence, sorting a list will also modify the underlying original array.

How to sort array in descending order?

By default, the sort method of the Arrays and Collections class sorts an array in ascending order. However, you can use the reverseOrder method of the Collections class to sort array in descending order.

Читайте также:  Python socket with select

This method returns a comparator that uses the reverse of the natural ordering of the collection elements (descending order for string elements).

You can also use the sort method of the Collections class as given below.

[zOo, xBox, roB, nIntendo, cEntury, boB, ak56, Zintec, Yokohama, Raphael, Playhouse, PlayStation, CAke, Browser, Aztec, Accenture]

How to sort using custom comparator?

As you may have noticed from the output that when we sort an array using the sort method, it outputs “PlayStation” before “Playhouse” and “Zintec” before “ak56” string values.

That is because the sort method sorts string values according to the ASCII values. ASCII value of the capital letter “Z” (90) is less than the ASCII value of the small letter “a” (97) so “Zintec” comes before “ak56” value. What if you want to sort an array of string values regardless of the case of the values? A custom comparator can be used as given below.

Источник

Сортировка списка строк в Java

В этом посте мы обсудим, как отсортировать список строк в лексикографическом порядке в Java.

1. Использование Collections.sort() метод

Простое решение для на месте отсортировать список строк в лексикографическом порядке с помощью Collections.sort() метод. Он принимает изменяемый список, размер которого не обязательно должен изменяться.

результат:

[Amazon, Apple, Facebook, Google, Netflix]

The Collections.sort() метод необязательно принимает компаратор, чтобы обеспечить точный контроль над порядком сортировки. Чтобы сделать сравнение между двумя строками нечувствительными к регистру, вы можете использовать String.CASE_INSENSITIVE_ORDER comparator.

результат:

[Amazon, APPLE, Facebook, GOOGLE, Netflix]

2. Использование List.sort() метод

Другой альтернативой сортировке списка строк на месте является метод List.sort() метод, добавленный в спецификацию JDK 1.8. Collections.sort() метод представляет собой оболочку над List.sort() метод. Следовательно, приведенный выше код эквивалентен:

результат:

[Amazon, Apple, Facebook, Google, Netflix]

Вы можете использовать String.CASE_INSENSITIVE_ORDER компаратор, чтобы операция сортировки сравнивала строки, игнорируя их порядок.

результат:

[Amazon, APPLE, Facebook, GOOGLE, Netflix]

3. Использование Stream.sorted() метод

Чтобы создать отсортированную копию списка, вы можете использовать Java 8 Stream. Идея состоит в том, чтобы создать последовательный поток по элементам в списке, отсортировать поток с помощью sorted() и соберите все отсортированные элементы в новый список. Это показано ниже:

Источник

Java 8 — Sorting An Array Of Strings By Length

Twitter Facebook Google Pinterest

A quick guide to sort the array of string in java 8 in ascending and descending order.

1. Overview

Java 8 - Sorting An Array Of Strings By Length

2. Java 8 — Sorting An Array Of Strings By Length Using Arrays.sort()

package com.javaprogramto.programs.strings.sort.length; import java.util.Arrays; public class SortStringsByLengthExample < public static void main(String[] args) < String[] words = < "hello", "how", "are", "u", "doing" >; System.out.println("string array before sorting : "+Arrays.toString(words)); sortArrayByLength(words, Sort.ASC); System.out.println("string array after sorting : "+Arrays.toString(words)); > public static void sortArrayByLength(String[] strs, Sort direction) < if (direction.equals(Sort.ASC)) < Arrays.sort(strs, (String s1, String s2) ->Integer.compare(s1.length(), s2.length())); > else < Arrays.sort(strs, (String s1, String s2) ->(-1) * Integer.compare(s1.length(), s2.length())); > > public enum Sort < ASC, DESC >>
string array before sorting : [hello, how, are, u, doing] string array after sorting : [u, how, are, hello, doing]

3. Java 8 — Sorting An Array Of Strings By Length Using Comparator.comparingInt()

Next solution is based on the Comparator.comparingInt() method. In java 8, Comparator interface is enriched with the comparingInt() and this takes a int returned function. This int is the key for sorting.

Читайте также:  Less css import css

And reversed() method also added to the Comparator interface. This function reverses the current comparator.

package com.javaprogramto.programs.strings.sort.length; import java.util.Arrays; import java.util.Comparator; public class SortStringsByLengthExample2 < public static void main(String[] args) < String[] words = < "hello", "how", "are", "u", "doing" >; System.out.println("string array before sorting : " + Arrays.toString(words)); sortArrayByLengthUsingComparator(words, Sort.DESC); System.out.println("string array after sorting : " + Arrays.toString(words)); > public static void sortArrayByLengthUsingComparator(String[] strs, Sort direction) < if (direction.equals(Sort.ASC)) < Arrays.sort(strs, Comparator.comparingInt(String::length)); >else < Arrays.sort(strs, Comparator.comparingInt(String::length).reversed()); >> public enum Sort < ASC, DESC >>
string array before sorting : [hello, how, are, u, doing] string array after sorting : [hello, doing, how, are, u]

4. Java 8 — Sorting An Array Of Strings By Length By Collecting Result using sorted() and toArray() methods

Now, in this solution the original array remain untouched with help of sorted() and toArray() methods.

package com.javaprogramto.programs.strings.sort.length; import java.util.Arrays; import java.util.Comparator; public class SortStringsByLengthExample3 < public static void main(String[] args) < String[] words = < "hello", "how", "are", "u", "doing" >; System.out.println("string array before sorting : " + Arrays.toString(words)); String[] sortedArrayByLength = sortArrayByLengthUsingSorted(words, Sort.DESC); System.out.println("original array after sorting : " + Arrays.toString(words)); System.out.println("new string array after sorting : " + Arrays.toString(sortedArrayByLength)); > public static String[] sortArrayByLengthUsingSorted(String[] strs, Sort direction) < if (direction.equals(Sort.ASC)) < return Arrays.stream(strs) .sorted(Comparator.comparingInt(String::length)) .toArray(String[]::new); >else < return Arrays.stream(strs) .sorted(Comparator.comparingInt(String::length) .reversed()) .toArray(String[]::new); >> public enum Sort < ASC, DESC >>
string array before sorting : [hello, how, are, u, doing] original array after sorting : [hello, how, are, u, doing] new string array after sorting : [hello, doing, how, are, u]

5. Conclusion

In this article, we’ve seen the different solutions to sort an array of string by length in java 8.

Labels:

SHARE:

Twitter Facebook Google Pinterest

About Us

Java 8 Tutorial

  • Java 8 New Features
  • Java 8 Examples Programs Before and After Lambda
  • Java 8 Lambda Expressions (Complete Guide)
  • Java 8 Lambda Expressions Rules and Examples
  • Java 8 Accessing Variables from Lambda Expressions
  • Java 8 Method References
  • Java 8 Functional Interfaces
  • Java 8 — Base64
  • Java 8 Default and Static Methods In Interfaces
  • Java 8 Optional
  • Java 8 New Date Time API
  • Java 8 — Nashorn JavaScript
Читайте также:  Реализация двоичного дерева питон

Java Threads Tutorial

Kotlin Conversions

Kotlin Programs

Java Conversions

  • Java 8 List To Map
  • Java 8 String To Date
  • Java 8 Array To List
  • Java 8 List To Array
  • Java 8 Any Primitive To String
  • Java 8 Iterable To Stream
  • Java 8 Stream To IntStream
  • String To Lowercase
  • InputStream To File
  • Primitive Array To List
  • Int To String Conversion
  • String To ArrayList

Java String API

  • charAt()
  • chars() — Java 9
  • codePointAt()
  • codePointCount()
  • codePoints() — Java 9
  • compareTo()
  • compareToIgnoreCase
  • concat()
  • contains()
  • contentEquals()
  • copyValueOf()
  • describeConstable() — Java 12
  • endsWith()
  • equals()
  • equalsIgnoreCase()
  • format()
  • getBytes()
  • getChars()
  • hashcode()
  • indent() — Java 12
  • indexOf()
  • intern()
  • isBlank() — java 11
  • isEmpty()
  • join()
  • lastIndexOf()
  • length()
  • lines()
  • matches()
  • offsetByCodePoints()
  • regionMatches()
  • repeat()
  • replaceFirst()
  • replace()
  • replaceAll()
  • resolveConstantDesc()
  • split()
  • strip(), stripLeading(), stripTrailing()
  • substring()
  • toCharArray()
  • toLowerCase()
  • transform() — Java 12
  • valueOf()

Spring Boot

$show=Java%20Programs

$show=Kotlin

accumulo,1,ActiveMQ,2,Adsense,1,API,37,ArrayList,18,Arrays,24,Bean Creation,3,Bean Scopes,1,BiConsumer,1,Blogger Tips,1,Books,1,C Programming,1,Collection,8,Collections,37,Collector,1,Command Line,1,Comparator,1,Compile Errors,1,Configurations,7,Constants,1,Control Statements,8,Conversions,6,Core Java,149,Corona India,1,Create,2,CSS,1,Date,3,Date Time API,38,Dictionary,1,Difference,2,Download,1,Eclipse,3,Efficiently,1,Error,1,Errors,1,Exceptions,8,Fast,1,Files,17,Float,1,Font,1,Form,1,Freshers,1,Function,3,Functional Interface,2,Garbage Collector,1,Generics,4,Git,9,Grant,1,Grep,1,HashMap,2,HomeBrew,2,HTML,2,HttpClient,2,Immutable,1,Installation,1,Interview Questions,6,Iterate,2,Jackson API,3,Java,32,Java 10,1,Java 11,6,Java 12,5,Java 13,2,Java 14,2,Java 8,128,Java 8 Difference,2,Java 8 Stream Conversions,4,java 8 Stream Examples,12,Java 9,1,Java Conversions,14,Java Design Patterns,1,Java Files,1,Java Program,3,Java Programs,114,Java Spark,1,java.lang,4,java.util. function,1,JavaScript,1,jQuery,1,Kotlin,11,Kotlin Conversions,6,Kotlin Programs,10,Lambda,2,lang,29,Leap Year,1,live updates,1,LocalDate,1,Logging,1,Mac OS,3,Math,1,Matrix,6,Maven,1,Method References,1,Mockito,1,MongoDB,3,New Features,1,Operations,1,Optional,6,Oracle,5,Oracle 18C,1,Partition,1,Patterns,1,Programs,1,Property,1,Python,2,Quarkus,1,Read,1,Real Time,1,Recursion,2,Remove,2,Rest API,1,Schedules,1,Serialization,1,Servlet,2,Sort,1,Sorting Techniques,8,Spring,2,Spring Boot,23,Spring Email,1,Spring MVC,1,Streams,31,String,61,String Programs,28,String Revese,1,StringBuilder,1,Swing,1,System,1,Tags,1,Threads,11,Tomcat,1,Tomcat 8,1,Troubleshoot,26,Unix,3,Updates,3,util,5,While Loop,1,

Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content

Источник

Оцените статью