Home  >  Article  >  Java  >  Using Java Collections Efficiently: Practical Tips

Using Java Collections Efficiently: Practical Tips

WBOY
WBOYOriginal
2023-06-16 11:06:101249browse

Java collections are one of the most commonly used data structures in Java. It not only provides powerful data management functions, but also can reduce a lot of code writing in most cases. In this article, we will share some efficient Java collection usage tips to help you improve code quality and efficiency.

  1. Avoid using unnecessary loop iterators

Java collections generally use for-each loops, which can make the code more concise and easier to understand. However, in some cases it is more efficient to use a loop iterator. For example, when deleting elements, using for-each will throw a concurrent modification exception, but using an iterator can avoid this exception.

Sample code:

// for-each循环
for (String str : list) {
    if (str.equals("foo")) {
        list.remove(str);
    }
}

// 使用迭代器
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String str = iterator.next();
    if (str.equals("foo")) {
        iterator.remove();
    }
}
  1. Use more efficient collections

When choosing a collection, you need to consider which collection to use to improve code efficiency. For example, if you need to frequently insert and delete elements, using LinkedList will be more efficient than ArrayList; if you need to sort elements, using TreeSet or TreeMap will be more efficient.

Sample code:

List<Integer> linkedList = new LinkedList<>();
List<Integer> arrayList = new ArrayList<>();

for (int i = 0; i < 1000000; i++) {
    linkedList.add(i);
    arrayList.add(i);
}

// 对比插入和删除的效率
long linkStartTime = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
    linkedList.remove(0);
    linkedList.add(0, i);
}
System.out.println("LinkedList: " + (System.currentTimeMillis() - linkStartTime) + "ms");

long arrayStartTime = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
    arrayList.remove(0);
    arrayList.add(0, i);
}
System.out.println("ArrayList: " + (System.currentTimeMillis() - arrayStartTime) + "ms");
  1. Use Collections tool class for collection operations

Java provides Collections tool class to help us operate collections, which is very easy to use. convenient. For example, you can use the Collections.sort() method to sort a collection; use the Collections.max() and Collections.min() methods to get the maximum and minimum values ​​in a collection.

Sample code:

List<Integer> list = Arrays.asList(5, 2, 3, 1, 4);

// 通过Collections.sort()方法来对集合进行排序
Collections.sort(list);
System.out.println(list);

// 获取集合中的最大值和最小值
int max = Collections.max(list);
int min = Collections.min(list);
System.out.println("Max: " + max + ", Min: " + min);
  1. Use Lambda expressions to operate collections

Java 8 introduces Lambda expressions, making the code more concise and understandable . Using Lambda expressions, we can use functional programming to operate on collections.

Sample code:

List<Integer> list = Arrays.asList(5, 2, 3, 1, 4);

// 使用Lambda表达式来对集合进行操作
list.forEach(integer -> System.out.print(integer + " "));
System.out.println();

list.stream()
    .filter(integer -> integer % 2 == 0)
    .map(integer -> integer * 2)
    .forEach(integer -> System.out.print(integer + " "));
System.out.println();
  1. Use Set and Map for deduplication and data processing

If you need to deduplicate or process data, This can be achieved using Set and Map. For example, you can use HashSet to deduplicate data, use HashMap to record the number of times data appears, etc.

Sample code:

List<Integer> list = Arrays.asList(5, 2, 3, 1, 4, 2, 5, 1);

// 使用HashSet来对数据进行去重
Set<Integer> set = new HashSet<>(list);
System.out.println(set);

// 使用HashMap来记录数据出现的次数
Map<Integer, Integer> map = new HashMap<>();
for (Integer integer : list) {
    Integer count = map.get(integer);
    if (count == null) {
        map.put(integer, 1);
    } else {
        map.put(integer, count + 1);
    }
}
System.out.println(map);

In short, Java collections are one of the most commonly used data structures in Java. Proper use of Java collections plays a very important role in improving code quality and efficiency. Try these tips and apply them to your specific projects for better code results.

The above is the detailed content of Using Java Collections Efficiently: Practical Tips. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn