Java sorting integer array

Java Arrays — sort(int[] a) Method

The Java Arrays sort(int[] a) method sorts the specified array of ints into ascending numerical order. This method using a Dual-Pivot Quicksort algorithm which breaks the array into subarrays, sorted them and then merged to give a sorted array.

Declaration

Following is the declaration for java.util.Arrays.sort(int[] a) method

public static void sort(int[] a)

Parameters

a − This is the array to be sorted.

Return Value

This method does not return any value.

Exception

Java Arrays sort​(int[] a, int fromIndex, int toIndex) Method

Description

The Java Arrays sort(int[] a, int fromIndex, int toIndex) method sorts the specified range of given array of ints into ascending numerical order. This method using a Dual-Pivot Quicksort algorithm which breaks the array into subarrays, sorted them and then merged to give a sorted array.

Declaration

Following is the declaration for java.util.Arrays.sort(int[] a, int fromIndex, int toIndex) method

public static void sort​(int[] a, int fromIndex, int toIndex)

Parameters

  • a − This is the array to be sorted.
  • fromIndex − This is the index of the first element, inclusive, to be sorted.
  • toIndex − This is the index of the last element, exclusive, to be sorted
Читайте также:  Зачем нужен тег html

Return Value

This method is not returning anything.

Exception

  • IllegalArgumentException − if fromIndex > toIndex
  • ArrayIndexOutOfBoundsException − if fromIndex < 0 or toIndex >array.length

Example 1

The following example shows the usage of Java Arrays sort(int[]) method. First, we’ve created an array of ints, printed the original array. Using sort() method, array is sorted and printed thereafter.

package com.tutorialspoint; import java.util.Arrays; public class ArrayDemo < public static void main(String[] args) < // initialize unsorted array int arr[] = < 11, 54, 23, 32, 15, 24, 31, 12 >; System.out.print("Original Array: ["); // print the array for (int i = 0; i < arr.length; i++) < System.out.print(arr[i] + " "); >System.out.println("]"); // sort the array Arrays.sort(arr); System.out.print("Sorted Array: ["); // print the array for (int i = 0; i < arr.length; i++) < System.out.print(arr[i] + " "); >System.out.println("]"); > >

Output

Let us compile and run the above program, this will produce the following result −

Original Array: [11 54 23 32 15 24 31 12 ] Sorted Array: [11 12 15 23 24 31 32 54 ]

Example 2

The following example shows the usage of Java Arrays sort(int[], int, int) method. First, we’ve created an array of ints, printed the original array. Using sort() method, array is sorted and printed thereafter.

package com.tutorialspoint; import java.util.Arrays; public class ArrayDemo < public static void main(String[] args) < // initialize unsorted array int arr[] = < 11, 54, 23, 32, 15, 24, 31, 12 >; System.out.print("Original Array: ["); // print the array for (int i = 0; i < arr.length; i++) < System.out.print(arr[i] + " "); >System.out.println("]"); // sort the array Arrays.sort(arr, 0, arr.length); System.out.print("Sorted Array: ["); // print the array for (int i = 0; i < arr.length; i++) < System.out.print(arr[i] + " "); >System.out.println("]"); > >

Output

Let us compile and run the above program, this will produce the following result −

Original Array: [11 54 23 32 15 24 31 12 ] Sorted Array: [11 12 15 23 24 31 32 54 ]

Example 3

The following example shows the usage of Java Arrays sort(int[], int, int) method. First, we’ve created an array of ints, printed the original array. Using sort() method, a sub-array is sorted and printed thereafter.

package com.tutorialspoint; import java.util.Arrays; public class ArrayDemo < public static void main(String[] args) < // initialize unsorted array int arr[] = < 11, 54, 23, 32, 15, 24, 31, 12 >; System.out.print("Original Array: ["); // print the array for (int i = 0; i < arr.length; i++) < System.out.print(arr[i] + " "); >System.out.println("]"); // sort first five elements of the array Arrays.sort(arr, 0, 5); System.out.print("Sorted Array: ["); // print the array for (int i = 0; i < arr.length; i++) < System.out.print(arr[i] + " "); >System.out.println("]"); > >

Output

Let us compile and run the above program, this will produce the following result −

Original Array: [11 54 23 32 15 24 31 12 ] Sorted Array: [11 15 23 32 54 24 31 12 ]

Источник

Кофе-брейк #213. Как сортировать примитивные массивы в Java. Прекратите использовать исключения в Java

Java-университет

Кофе-брейк #213. Как сортировать примитивные массивы в Java. Прекратите использовать исключения в Java - 1

Источник: Asynq В этом руководстве рассмотрены три варианта сортировки примитивных массивов в Java. Предположим, у нас есть массив int[] и нам нужно отсортировать этот массив по возрастанию и убыванию.

Входной массив

Вариант 1

В первом случае мы будем использовать Arrays.sort() . Этот метод требует передачи массива объектов, и поскольку нам предоставлен примитивный массив, то придется выполнить упаковку (boxing). Для преобразования примитивного типа в объектный Stream API предоставляет boxed() .

 Integer[] arrBoxed = Arrays .stream(arr) .boxed() .toArray(Integer[]::new); Arrays.sort(arrBoxed); System.out.println(Arrays.toString(arrBoxed)); 

Если тип возвращаемого значения должен быть int[] , тогда мы можем сопоставить его с примитивным типом, используя Stream API.

 int[] ints = Arrays.stream(arrBoxed).mapToInt(a -> a).toArray(); 

Тип сортировки по умолчанию будет обозначена по возрастанию. Если же нам нужна сортировка по убыванию, тогда нужно использовать компаратор.

 Arrays.sort(arrBoxed, Comparator.reverseOrder()); Arrays.sort(arrBoxed, (a,b) -> (b-a)); // lambda 

Вариант 2

 int[] sortedArr = Arrays.stream(arr).sorted().toArray(); System.out.println(Arrays.toString(sortedArr)); 

Тип сортировки по умолчанию — по возрастанию. Если нам нужен тип сортировки по убыванию, тогда нам нужно немного изменить описанный выше подход. Stream API обеспечивает сортировку по типу объекта, который принимает компаратор, поэтому мы можем передать компаратор для определения порядка сортировки. Но есть нюанс — поскольку Stream API для примитива предоставляет метод sorted() , который не принимает никакого аргумента компаратора, мы не можем передать порядок. Таким образом, мы должны сначала упаковать примитивный тип в тип объекта, используя boxed() .

 int[] reverseSortedArr = Arrays.stream(arr) .boxed() .sorted(Collections.reverseOrder()) .mapToInt(a ->a) .toArray(); 

Вариант 3

Этот вариант немного громоздок, так как требует слишком много преобразований и инициализаций. Для сортировки массива мы будем использовать Collections.sort() . Но функция Collections.sort() принимает в качестве аргумента список (list), поэтому сначала нам нужно преобразовать наш входной массив в список. Если мы используем Arrays.asList() , то мы получим List из-за примитивной природы входного массива целых чисел.

 List ints1 = Arrays.asList(ints); 

Здесь лучший способ — упаковать тип, а затем преобразовать его в список. При этом мы все еще инициализируем новый ArrayList со списком возврата из Stream API. Это связано с тем, что нам нужен изменяемый список для сортировки массива, а toList() предоставляет неизменяемый список, который мы не можем использовать для сортировки.

 ArrayList integers = new ArrayList<>(Arrays .stream(arr) .boxed() .toList() ); 

Получив список целых чисел ArrayList , мы можем использовать метод Collections.sort() для его сортировки.

 ArrayList integers = new ArrayList<>(Arrays.stream(arr).boxed().toList()); Collections.sort(integers); // Collections.sort(integers, Comparator.reverseOrder()); sort in reverse System.out.println(integers); 

Заключение

В этой статье мы обсудили три различных варианта сортировки массива в Java. Мы также рассмотрели преобразование типа из примитива в объект и как это сделать с помощью Stream API Java 8.

Прекратите использовать исключения в Java

Кофе-брейк #213. Как сортировать примитивные массивы в Java. Прекратите использовать исключения в Java - 2

Источник: Medium Изучив эту публикацию, вы узнаете причины, из-за которых вам следует отказаться от использования исключений в Java. Исключения (Exceptions) — это мощная функция Java, которая позволяет разработчикам структурированным и изящным образом обрабатывать ошибки и неожиданное поведение. Однако бывают случаи, когда исключения используются не по назначению, что приводит к раздутому и трудночитаемому коду.

Исключения стоят дорого

Генерация исключения в Java — дорогостоящая операция. При возникновении исключения виртуальная машина Java (JVM) должна выполнить несколько действий, чтобы раскрутить стек вызовов, найти соответствующий блок catch и выполнить его. Этот процесс может быть медленным и способен существенно повлиять на производительность вашего кода.

Исключения усложняют понимание кода

Когда вы используете исключения для управления потоком вашего кода, может стать трудно понять поведение вашей программы. Обработка исключений усложняет понимание кода, становится труднее предсказать его поведение при возникновении исключений.

Исключения могут скрывать ошибки

Когда вы используете исключения для обработки неожиданного поведения, можно легко пропустить ошибки и другие проблемы в вашем коде. Вместо устранения основной причины проблемы у вас может возникнуть соблазн перехватить исключение и двигаться дальше. Это может привести к тому, что код будет сложно поддерживать и отлаживать.

Исключения могут использоваться не по назначению

Разработчики часто используют исключения для потока управления, что не является их целью. Исключения следует использовать для обработки непредвиденных тельных ситуаций, а не для управления потоком кода. Неправильное использование исключений может затруднить чтение и понимание кода.

Исключения могут вызвать проблемы с безопасностью

Когда исключения не обрабатываются должным образом, они могут вызвать проблемы с безопасностью в вашем коде. Например, если исключение содержит конфиденциальную информацию, она может быть передана злоумышленнику. Чтобы избежать этих проблем, важно тщательно обрабатывать исключения и раскрывать пользователю только необходимую информацию.

Существуют альтернативы исключениям

  1. Используйте коды ошибок или возвращаемые значения. Вместо создания исключения при возникновении ошибки вы можете вернуть код или значение ошибки, чтобы указать, что что-то пошло не так. Это может быть более эффективным и предсказуемым, чем использование исключений.
  2. Используйте блок try-catch экономно. Блоки try-catch полезны для обработки исключений, но ими также можно злоупотреблять. Рассмотрите возможность их использования только в действительно исключительных ситуациях и обрабатывайте ожидаемые ошибки с помощью других методов.
  3. Используйте утверждения (assertions). Утверждения — это мощный инструмент для обнаружения ошибок на ранних этапах процесса разработки. Они позволяют вам проверять предположения о вашем коде и преждевременно завершать работу, если что-то идет не так.
  4. Используйте логирование. Логирование может стать эффективным способом отслеживания ошибок и неожиданного поведения в вашем коде. Регистрируя ошибки и предупреждения, вы можете упростить отладку кода и понять поведение своей программы.

Источник

Java sorting integer array

Learn Latest Tutorials

Splunk tutorial

SPSS tutorial

Swagger tutorial

T-SQL tutorial

Tumblr tutorial

React tutorial

Regex tutorial

Reinforcement learning tutorial

R Programming tutorial

RxJS tutorial

React Native tutorial

Python Design Patterns

Python Pillow tutorial

Python Turtle tutorial

Keras tutorial

Preparation

Aptitude

Logical Reasoning

Verbal Ability

Company Interview Questions

Artificial Intelligence

AWS Tutorial

Selenium tutorial

Cloud Computing

Hadoop tutorial

ReactJS Tutorial

Data Science Tutorial

Angular 7 Tutorial

Blockchain Tutorial

Git Tutorial

Machine Learning Tutorial

DevOps Tutorial

B.Tech / MCA

DBMS tutorial

Data Structures tutorial

DAA tutorial

Operating System

Computer Network tutorial

Compiler Design tutorial

Computer Organization and Architecture

Discrete Mathematics Tutorial

Ethical Hacking

Computer Graphics Tutorial

Software Engineering

html tutorial

Cyber Security tutorial

Automata Tutorial

C Language tutorial

C++ tutorial

Java tutorial

.Net Framework tutorial

Python tutorial

List of Programs

Control Systems tutorial

Data Mining Tutorial

Data Warehouse Tutorial

Javatpoint Services

JavaTpoint offers too many high quality services. Mail us on h[email protected], to get more information about given services.

  • Website Designing
  • Website Development
  • Java Development
  • PHP Development
  • WordPress
  • Graphic Designing
  • Logo
  • Digital Marketing
  • On Page and Off Page SEO
  • PPC
  • Content Development
  • Corporate Training
  • Classroom and Online Training
  • Data Entry

Training For College Campus

JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected].
Duration: 1 week to 2 week

Like/Subscribe us for latest updates or newsletter RSS Feed Subscribe to Get Email Alerts Facebook Page Twitter Page YouTube Blog Page

Источник

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