JavaRush /Blog Java /Random-VI /Nghỉ giải lao #217. Cách khởi tạo Danh sách trong Java. 7...

Nghỉ giải lao #217. Cách khởi tạo Danh sách trong Java. 7 thủ thuật đơn giản để cải thiện năng suất Java: Mẹo và ví dụ

Xuất bản trong nhóm

Cách khởi tạo Danh sách trong Java

Nguồn: FreeCodeCamp Bài viết này trình bày các phương pháp khởi tạo Danh sách khác nhau trong Java kèm theo các ví dụ thực tế. Nghỉ giải lao #217.  Cách khởi tạo Danh sách trong Java.  7 thủ thuật đơn giản để cải thiện năng suất Java: Mẹo và ví dụ - 1Một trong những cấu trúc dữ liệu cơ bản trong ngôn ngữ Java là List . Nó cho phép các nhà phát triển lưu trữ và quản lý một tập hợp các phần tử. Khởi tạo Danh sách trong Java là một bước quan trọng trong quá trình phát triển vì nó xác định trạng thái ban đầu của Danh sách và chuẩn bị cho các hoạt động tiếp theo. Có nhiều cách khác nhau để khởi tạo Danh sách trong Java, việc lựa chọn tùy thuộc vào yêu cầu cụ thể của dự án:
  • Sử dụng hàm tạo ArrayList .
  • Sử dụng phương thức add() .
  • Sử dụng phương thức Arrays.asList() .
  • Sử dụng phương thức Stream.of() .
Chúng ta hãy xem xét kỹ hơn các phương pháp này.

Cách khởi tạo danh sách bằng hàm tạo ArrayList

Trong Java, lớp ArrayList là một triển khai của giao diện mảng động List , cho phép bạn thêm và xóa các phần tử khỏi danh sách nếu cần. Lớp ArrayList cung cấp một số hàm tạo để tạo một thể hiện của lớp. Cú pháp để tạo một đối tượng ArrayList không có dung lượng ban đầu là:
ArrayList<Object> list = new ArrayList<Object>();
Hàm tạo không có đối số tạo một danh sách trống ( List ) với dung lượng ban đầu là 10 phần tử. Nếu danh sách vượt quá dung lượng này, lớp ArrayList sẽ tự động tăng dung lượng bằng cách tạo một mảng mới lớn hơn và sao chép các phần tử từ mảng cũ sang mảng mới. Ngoài ra, chúng ta có thể tạo một đối tượng ArrayList với dung lượng ban đầu bằng cách sử dụng hàm tạo với một đối số nguyên, trong đó dung lượng là dung lượng ban đầu của danh sách:
ArrayList<Object> list = new ArrayList<Object>(capacity);
Để khởi tạo Danh sách với các giá trị, chúng ta có thể sử dụng hàm tạo lấy Bộ sưu tập làm đối số. Bạn có thể chuyển bất kỳ đối tượng bộ sưu tập nào triển khai giao diện Bộ sưu tập tới hàm tạo này , chẳng hạn như một ArrayList hoặc LinkedList khác . Các phần tử của bộ sưu tập được thêm vào ArrayList mới theo thứ tự chúng xuất hiện trong bộ sưu tập. Đây là một ví dụ về cách tạo một ArrayList và khởi tạo nó với các giá trị bằng cách sử dụng hàm tạo có Collection :
import java.util.ArrayList;
import java.util.Arrays;

public class Example {
    public static void main(String[] args) {
        // создаем массив целых чисел
        Integer[] array = {1, 2, 3, 4, 5};

        // создаем список из массива
        ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(array));

        // печатаем список
        System.out.println(list); // [1, 2, 3, 4, 5]
    }
}
Trong ví dụ này, chúng ta tạo một mảng các số nguyên và sau đó chuyển nó sang phương thức Arrays.asList() để tạo một đối tượng List . Sau đó, chúng ta chuyển đối tượng Danh sách này cho hàm tạo ArrayList để tạo một ArrayList mới có cùng các phần tử như mảng ban đầu. Cuối cùng, chúng ta in nội dung của danh sách bằng phương thức System.out.println() .

Cách khởi tạo List bằng phương thức add()

Phương thức add() được sử dụng rộng rãi trong Java để thêm các phần tử vào bộ sưu tập hoặc danh sách. Phương thức này có sẵn cho một số loại bộ sưu tập trong Java, bao gồm List , SetMap . Phương thức add() nhận một đối số—phần tử sẽ được thêm vào bộ sưu tập. Khi nói đến việc thêm các phần tử vào vList , phương thức add() đặc biệt hữu ích vì các danh sách trong Java là các bộ sưu tập được sắp xếp có thể chứa các bản sao. Phương thức add() có thể được sử dụng để thêm các phần tử vào cuối danh sách, làm cho nó trở thành một cách thuận tiện để khởi tạo Danh sách với một số giá trị ban đầu. Dưới đây là ví dụ về cách sử dụng phương thức add() để khởi tạo Danh sách trong Java:
import java.util.ArrayList;
import java.util.List;

public class ListExample {
    public static void main(String[] args) {
        // создаем новый ArrayList
        List<String> myList = new ArrayList<>();

        // добавляем элементы в список, используя метод the add()
        myList.add("apple");
        myList.add("banana");
        myList.add("cherry");

        // печатаем содержимое списка
        System.out.println(myList);
    }
}
Trong ví dụ này, trước tiên chúng ta tạo một ArrayList mới có tên myList . Sau đó, chúng tôi sử dụng phương thức add() để thêm ba chuỗi ("apple", "banana" và "cherry") vào cuối danh sách. Sau đó chúng ta in nội dung của danh sách bằng phương thức System.out.println() . Khi chúng ta chạy chương trình thì kết quả sẽ như sau:
[táo, chuối, anh đào]

Cách khởi tạo Danh sách bằng phương thức Arrays.asList()

Phương thức Arrays.asList() tích hợp sẵn của Java chuyển đổi một mảng thành một danh sách. Phương thức này lấy một mảng làm đối số và trả về một đối tượng List . Đối tượng được trả về bởi phương thức Arrays.asList() là một danh sách có kích thước cố định, có nghĩa là chúng ta không thể thêm hoặc xóa các phần tử khỏi nó. Để sử dụng phương thức Arrays.asList() để khởi tạo Danh sách trong Java, chúng ta phải làm theo các bước sau: Đầu tiên, hãy khai báo một mảng các phần tử mà chúng ta muốn khởi tạo danh sách. Ví dụ: giả sử chúng ta muốn khởi tạo một danh sách có ba phần tử: "táo", "chuối" và "cam". Ở đây chúng ta có thể khai báo một mảng như thế này:
String[] fruits = {"apple", "banana", "orange"};
Sau đó, chúng ta gọi phương thức Arrays.asList() và truyền mảng làm đối số. Điều này sẽ trả về một đối tượng List chứa các phần tử của mảng.
List<String> fruitList = Arrays.asList(fruits);
Bây giờ chúng ta có thể sử dụng đối tượng FruitList để truy cập các phần tử của danh sách. Ví dụ: chúng ta có thể lặp qua danh sách và in từng phần tử:
for (String fruit : fruitList) {
    System.out.println(fruit);
}
Phần kết luận:
táo chuối cam
Điều quan trọng cần lưu ý là phương thức Arrays.asList() không tạo đối tượng List mới mà trả về một biểu diễn đối tượng List của mảng ban đầu . Điều này có nghĩa là nếu chúng ta thay đổi mảng ban đầu thì những thay đổi đó cũng sẽ được phản ánh trong đối tượng List . Ví dụ:
fruits[0] = "pear";
System.out.println(fruitList.get(0)); // Вывод: pear
Trong ví dụ trên, chúng tôi đã thay đổi phần tử đầu tiên của mảng trái cây thành "quả lê". Khi chúng ta truy cập phần tử đầu tiên của đối tượng FruitList , chúng ta cũng nhận được "lê" vì FruitList chỉ đơn giản là một đại diện của mảng trái cây .

Cách khởi tạo Danh sách bằng phương thức Stream.of()

Stream.of() là một phương thức tiện lợi được cung cấp bởi Java 8 trở lên trong gói java.util.stream . Nó được sử dụng để tạo một luồng các phần tử thuộc bất kỳ loại nào, bao gồm các kiểu nguyên thủy, mảng và đối tượng. Phương thức này nhận một hoặc nhiều đối số và trả về một luồng bao gồm các đối số đó. Cú pháp của phương thức Stream.of() :
Stream<T> stream = Stream.of(t1, t2, t3, ..., tn);
Ở đây T là loại phần tử trong luồng và t1 trở lên cho đến tn là các phần tử nên được đưa vào luồng. Để khởi tạo Danh sách trong Java bằng phương thức Stream.of() , bạn cần thực hiện như sau:
  1. Đầu tiên hãy nhập gói java.util.stream .

  2. Sau đó sử dụng hàm tạo để tạo danh sách kiểu ArrayList mong muốn, ví dụ:

    List<String> myList = new ArrayList<>();
  3. Khởi tạo danh sách bằng phương thức Stream.of() , chuyển các phần tử mong muốn làm đối số, sau đó sử dụng phương thức coll() để thu thập các phần tử luồng vào danh sách, ví dụ:

    myList = Stream.of("Apple", "Banana", "Cherry", "Date")
                  .collect(Collectors.toList());
  4. Sau đó chúng ta có thể in danh sách để kiểm tra nội dung của nó.

    System.out.println(myList);

    Phần kết luận:

    [Táo, Chuối, Anh Đào, Chà Là]

Phần kết luận

Khởi tạo Danh sách trong Java là một tác vụ lập trình khá phổ biến và có một số cách để thực hiện việc đó. Bằng cách làm theo các bước được mô tả trong bài viết này, chúng ta có thể dễ dàng tạo và khởi tạo Danh sách với các phần tử mong muốn bằng phương thức Stream.of() . Cách tiếp cận này ngắn gọn và linh hoạt, đồng thời có thể đặc biệt hữu ích khi chúng ta cần khởi tạo một danh sách có số lượng phần tử nhỏ. Chúc mừng mã hóa!

7 thủ thuật đơn giản để cải thiện năng suất Java: Mẹo và ví dụ

Nguồn: Medium Dưới đây là tuyển tập bảy mẹo thực tế mà nếu làm theo sẽ giúp cải thiện năng suất của nhà phát triển Java. Bạn có thể cải thiện hiệu suất của các ứng dụng Java của mình bằng cách làm theo một số mẹo đơn giản.

1. Sử dụng kiểu nguyên thủy thay vì đối tượng:

// Плохо: использование an object Integer
Integer count = 0;
for (int i = 0; i < 1000000; i++) {
    count++;
}

// Хорошо: использование примитива int
int count = 0;
for (int i = 0; i < 1000000; i++) {
    count++;
}

2. Tránh tạo các đối tượng không cần thiết:

// Плохо: использование конкатенации строк с помощью '+'
String str = "";
for (int i = 0; i < 10000; i++) {
    str += i;
}

// Хорошо: использование StringBuilder
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10000; i++) {
    sb.append(i);
}
String str = sb.toString();

3. Sử dụng đúng cấu trúc dữ liệu:

// Плохо: использование List для частого поиска
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
// ...
if (names.contains("Charlie")) {
    // ...
}

// Хорошо: использование HashSet для частого поиска
Set<String> names = new HashSet<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
// ...
if (names.contains("Charlie")) {
    // ...
}

4. Giảm thiểu việc gọi phương thức:

// Плохо: вызов метода внутри цикла
for (int i = 0; i < 1000000; i++) {
    doSomething(i);
}

// Хорошо: выносим метод за пределы цикла
for (int i = 0; i < 1000000; i++) {
    // ...
}
doSomething(i);

5. Sử dụng công cụ sửa đổi tĩnh và cuối cùng:

// Плохо: создание ненужных экземпляров an objectов
public class MyClass {
    private int value;
    public void setValue(int value) {
        this.value = value;
    }
    public int getValue() {
        return value;
    }
}
MyClass obj = new MyClass();
obj.setValue(10);
int value = obj.getValue();

// Хорошо: использование статических и финальных модификаторов
public class MyClass {
    private static final int DEFAULT_VALUE = 0;
    private final int value;
    public MyClass(int value) {
        this.value = value;
    }
    public int getValue() {
        return value;
    }
}
MyClass obj = new MyClass(10);
int value = obj.getValue();

6. Sử dụng thuật toán phù hợp với tình huống:

// Плохо: использовать линейный поиск для большой коллекции
List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// ...
int target = 7;
for (int i = 0; i < nums.size(); i++) {
    if (nums.get(i) == target) {
        // ...
    }
}
// Хорошо: использование бинарного поиска для большой коллекции
List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// ...
int target = 7;
int index = Collections.binarySearch(nums, target);
if (index >= 0) {
    // ...
}

7. Tối ưu hóa chu kỳ của bạn:

// Плохо: вызов метода внутри цикла
for (int i = 0; i< 1000000; i++) {
    String str = getString(i);
    // ...
}

// Хорошо: минимизация вызовов методов в цикле
for (int i = 0; i < 1000000; i++) {
    String str = "String " + i;
    // ...
}
Đây chỉ là một vài thủ thuật Java đơn giản có thể cải thiện năng suất của bạn. Hãy nhớ rằng việc tối ưu hóa hiệu suất có thể là một thách thức và nhà phát triển thường cần phân tích mã của họ để xác định các điểm nghẽn về hiệu suất.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION