Blogg

Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på Twitter

Callista medarbetare Peter Merikan

Java godbitar

// Peter Merikan

Det finns många godbitar i Java 21 men den största av dom alla pratar ingen om.

Java 21 och en buggrättning

Ja då var det ett nytt år, Java 21 är ute och alla går och väntar på Java 22. Java 21 innehåller många godbitar såsom virtuella trådar och pattern matching med mera, men varför är det ingen som talar om den riktigt stora nyheten i Java 21? Buggen JDK-8306927 är fixad.

Jaha, men vad handlar den om då? Jo man har rättat till sorteringsordningen för svenska språket. Vi som talar svenska vet att vi egentligen aldrig brytt oss om att skilja på enkel v (v) eller dubbel v (w), mer än att de finns i alfabetet. Jag har aldrig hört någon säga en webb adress med dubbel v som man gör i engelskan; dubbel v, dubbel v, dubbel v, punkt calllista enterprise punkt se. Det känns bara krångligt och lite konstigt.

Hur som helst så bestämde Svenska Akademins Ordlista år 2006 att det faktiskt har betydelse och att bokstaven w skall sorteras som en enskild bokstav. I och med Java 21 så har vi det även i Java språket.

Om vi först tittar hur det ser ut i Java 17. Låt oss då använda oss av JShell för att sortera några viktiga personer.

$ jshell
|  Welcome to JShell -- Version 17.0.8.1
|  For an introduction type: /help intro

jshell> import java.text.Collator;
   ...> import java.util.Arrays;
   ...> import java.util.Locale;
   ...> var people = Arrays.asList("Wenåker, Pär", "Västernäs, Jan", "Westbom, Per-Anton");
   ...> people.sort(Collator.getInstance(new Locale("sv", "SE")));
   ...> people.forEach(System.out::println);
people ==> [Västernäs, Jan, Wenåker, Pär, Westbom, Per-Anton]
Wenåker, Pär
Westbom, Per-Anton
Västernäs, Jan

jshell> /exit
|  Goodbye

Här ser vi hur det sorteras och de blir i följande ordning

Wenåker, Pär
Westbom, Per-Anton
Västernäs, Jan

och det kanske inte är som man förväntar sig.

Låt oss då se hur det ser ut med Java 21

$ jshell
|  Welcome to JShell -- Version 21.0.1
|  For an introduction type: /help intro

jshell> import java.text.Collator;
   ...> import java.util.Arrays;
   ...> import java.util.Locale;
   ...> var people = Arrays.asList("Wenåker, Pär", "Västernäs, Jan", "Westbom, Per-Anton");
   ...> people.sort(Collator.getInstance(new Locale("sv", "SE")));
   ...> people.forEach(System.out::println);
people ==> [Västernäs, Jan, Wenåker, Pär, Westbom, Per-Anton]
Västernäs, Jan
Wenåker, Pär
Westbom, Per-Anton

jshell> /exit
|  Goodbye

och nu blir det i den ordningen som man förväntar sig.

Västernäs, Jan
Wenåker, Pär
Westbom, Per-Anton

Detta kanske inte är något man legat sömnlös över då man ofta låter databasen sköta sorteringen.

God fortsättning på det nya året!

Tack för att du läser Callistas blogg.
Hjälp oss att nå ut med information genom att dela nyheter och artiklar i ditt nätverk.

Kommentarer