Sắp xếp một mảng theo thứ tự tăng dần hoặc giảm dần bằng Arrays.sort()
Nguồn:
FreeCodeCamp Với bài đăng này, bạn sẽ tìm hiểu cách sắp xếp một mảng theo thứ tự tăng dần hoặc giảm dần trong Java.
Trong Java, chúng ta sử dụng mảng để lưu trữ một tập hợp các biến (có cùng kiểu dữ liệu) trong một biến duy nhất. Nhưng đôi khi các giá trị được lưu trong mảng xuất hiện theo thứ tự ngẫu nhiên. Nhờ lớp
Arrays trong Java, chúng ta có một số cách để thao tác với mảng, bao gồm cả việc sắp xếp chúng. Một trong những phương thức chúng ta sẽ sử dụng từ lớp
Arrays là phương thức
Sort() , sắp xếp mảng theo thứ tự tăng dần. Để sắp xếp một mảng theo thứ tự giảm dần, hãy sử dụng phương thức
ReverseOrder() của lớp
Collections trong Java.
Cách sắp xếp một mảng theo thứ tự tăng dần trong Java bằng Arrays.sort()
Đây là một ví dụ về cách chúng ta có thể sử dụng phương thức
Sort() để sắp xếp một mảng theo thứ tự tăng dần.
import java.util.Arrays;
class ArraySort {
public static void main(String[] args) {
int[] arr = { 5, 2, 1, 8, 10 };
Arrays.sort(arr);
for (int values : arr) {
System.out.print(values + ", ");
}
}
}
Điều đầu tiên chúng ta làm trong ví dụ trên là nhập lớp
Mảng :
import java.util.Arrays; . Điều này cho phép chúng ta truy cập vào tất cả các phương thức của lớp
Arrays . Sau đó, chúng tôi tạo một mảng với các số theo thứ tự ngẫu nhiên:
int[] arr = { 5, 2, 1, 8, 10 }; . Để sắp xếp mảng này theo thứ tự tăng dần, chúng ta đã chuyển mảng đó làm tham số cho phương thức
Sort() :
Arrays.sort(arr); . Lưu ý rằng lớp
Arrays được viết trước khi truy cập phương thức
sắp xếp() bằng ký hiệu dấu chấm. Cuối cùng, chúng tôi tạo một vòng lặp và in mảng đó ra bàn điều khiển. Kết quả là một mảng được sắp xếp:
1, 2, 5, 8, 10 . Bây giờ hãy nói về việc sắp xếp một mảng theo thứ tự giảm dần.
Cách sắp xếp một mảng theo thứ tự giảm dần trong Java bằng Collections.reverseOrder()
Để sắp xếp một mảng theo thứ tự giảm dần, bạn nên sử dụng
ReverseOrder() , có thể được truy cập từ lớp
Collections . Chúng tôi vẫn sẽ sử dụng
Arrays.sort(); , nhưng trong ví dụ này, nó sẽ lấy hai tham số - một mảng để sắp xếp và
Collections.reverseOrder() .
import java.util.Arrays;
import java.util.Collections;
class ArraySort {
public static void main(String[] args) {
Integer[] arr = { 5, 2, 1, 8, 10 };
Arrays.sort(arr, Collections.reverseOrder());
for (int values : arr) {
System.out.print(values + ", ");
}
}
}
Điều đầu tiên chúng ta làm là nhập các lớp
Mảng và
Bộ sưu tập vì chúng ta sẽ sử dụng các phương thức do các lớp này cung cấp. Sau đó, chúng tôi tạo một dãy số theo thứ tự ngẫu nhiên:
Integer[] arr = { 5, 2, 1, 8, 10 }; . Như bạn có thể thấy, chúng tôi đã sử dụng
Integer[] thay vì
int[] như trong ví dụ trước. Nếu không sẽ xảy ra lỗi. Để sắp xếp mảng theo thứ tự giảm dần, chúng tôi đã thực hiện điều này:
Arrays.sort(arr, Collections.reverseOrder()); . Tham số đầu tiên là một
mảng mảng sẽ được sắp xếp theo thứ tự tăng dần. Tham số thứ hai,
Collections.reverseOrder() , sau đó sẽ đảo ngược thứ tự của mảng đã sắp xếp sao cho nó theo thứ tự giảm dần. Khi lặp qua và in ra, mảng sẽ trông như thế này:
10, 8, 5, 2, 1 .
Phần kết luận
Trong bài viết này, chúng ta đã thảo luận về cách sắp xếp mảng trong Java - cách chúng có thể được sắp xếp theo thứ tự tăng dần hoặc giảm dần. Để làm điều này, chúng ta có thể sử dụng phương thức
Sort() , có thể được truy cập từ lớp
Arrays . Phương thức
Sort() lấy một mảng để sắp xếp làm tham số. Để sắp xếp mảng theo thứ tự giảm dần, chúng ta đã sử dụng phương thức
ReverseOrder() do lớp Collections cung cấp. Nó được truyền dưới dạng tham số thứ hai cho phương thức
Sort() để mảng đã sắp xếp có thể được sắp xếp lại theo thứ tự giảm dần.
Bộ sưu tập Java. Sự khác biệt giữa giao diện Danh sách và Bộ là gì?
Nguồn:
Rrtutors List và Set là các giao diện Java để mở rộng giao diện
Collection . Trong bài đăng này, chúng ta sẽ xem xét những khác biệt chính giữa hai loại này, cũng như cách chúng có thể được sử dụng.
Sự khác biệt giữa giao diện Set và List trong Java
Hãy xác định những khác biệt chính giữa giao diện
List và
Set dựa trên các tham số chính sau:
Thực hiện
List triển khai
ArrayLists , trong khi
HashSet triển khai
Set .
Lập chỉ mục
Bạn có thể sử dụng
ListIterator để di chuyển cả tiến và lùi thông qua
List , nhưng không thông qua Set . Thay vào đó hãy sử dụng Iterator (hoạt động với cả
List và
Set ).
Đặt hàng
Giao diện
Set không hỗ trợ bất kỳ thứ tự đặt cụ thể nào. Một bộ sưu tập thuộc loại
Set đã được sắp xếp theo quy tắc riêng của nó và không thể sắp xếp như vậy.
Danh sách là một danh sách có thứ tự. Các đối tượng được lưu trữ theo thứ tự chúng được thêm vào danh sách. Các phần tử danh sách được truy cập theo chỉ mục.
Đối tượng rỗng
Danh sách không có hạn chế và hỗ trợ thêm giá trị Null, trong khi
Set cho phép tối đa một giá trị null.
trùng lặp
Danh sách có thể chứa các bản sao nhưng
Set thì không. Set không cho phép các phần tử trùng lặp vì tất cả các phần tử của nó phải là duy nhất. Nếu bạn chèn một phần tử trùng lặp vào
Set , giá trị hiện tại sẽ bị ghi đè.
Khi nào bạn nên sử dụng Danh sách và Bộ?
Set là lựa chọn tốt nhất khi bạn chỉ cần lưu trữ các giá trị duy nhất vì đó là mục đích của nó. Nhưng nếu bạn muốn giữ nguyên thứ tự chèn dù bị trùng lặp thì
List là lựa chọn tốt nhất .
Bộ ví dụ
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
List<String> al = new ArrayList<String>();
al.add("Rohit");
al.add("Panjab");
al.add("Kamir");
System.out.println("My ArrayList Items: ");
System.out.print(al);
List<String> ll = new LinkedList<String>();
ll.add("Shobit");
ll.add("Raul");
ll.add("Ketel");
System.out.println("\n My LinkedList Items: ");
System.out.print(ll);
}
}
Danh sách ví dụ
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
public class SetExample {
public static void main(String[] args) {
int myList[] = {60, 70, 80, 40 };
Set<Integer> dispSet = new HashSet<Integer>();
try{
for(int i = 0; i<4; i++){
dispSet.add(myList[i]);
}
System.out.println(dispSet);
TreeSet<Integer> treeset = new TreeSet<Integer>(dispSet);
System.out.println("Sorting in Asceding order:");
System.out.println(treeset);
}
catch(Exception e){
e.printStackTrace();
}
}
}
GO TO FULL VERSION