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.
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(); } }
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");
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);
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();
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!