Java 常见集合和应用

119 阅读1分钟

引言:

集合在Java开发中发挥了非常重要的作用。正确地选择和使用集合可以提升程序性能和优化代码结构。下面我们来了解下Java中几类常见集合的基本概念和应用示例。

一、ArrayList

ArrayList是Java中最常用的集合,它是基于动态数组实现的,特点为支持快速随机访问。

示例:

List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");

String first = list.get(0); // "a"

二、LinkedList

LinkedList是基于双向链表实现的,支持快速插入和删除操作。相比ArrayList,LinkedList更适合频繁进行插入和删除操作。

示例:

List<String> list = new LinkedList<>();
list.add("a");
list.add("b");
list.addFirst("x"); // 在首位插入"x"

String first = list.getFirst(); // "x"

三、HashMap

HashMap是Java中最常用的Map实现,它基于哈希表实现了映射关系,提供了极快的get操作。

示例:

Map<String, Integer> map = new HashMap<>();
map.put("a", 1); 
map.put("b", 2);

int value = map.get("a"); // 1

四、HashSet

HashSet是一个不允许相同元素的Set集合,它利用HashMap实现。HashSet提供了成本更低的成员关系测试和删除操作。

示例:

Set<String> set = new HashSet<>();
set.add("a");
set.add("b");
set.contains("a"); // true

五、TreeSet

TreeSet和HashSet类似,但它利用红黑树来存储元素。TreeSet能够保证元素处于排序状态。

示例:

Set<String> set = new TreeSet<>();
set.add("c");
set.add("a");
set.add("b");
// 输出元素将按照字母顺序排列
set.forEach(x -> System.out.println(x));  

六、LinkedHashSet

LinkedHashSet和HashSet集合一样,但它会记住元素的插入顺序。此集合适用于循环访问元素时,需要记录元素的先后顺序。

示例:

Set<String> set = new LinkedHashSet<>();
set.add("c");  
set.add("a");
set.add("b");
// 会按插入顺序遍历元素
set.forEach(x -> System.out.println(x));

** 七、Collections**

Collections不是集合本身,而是一个工具类,它提供了很多处理集合的静态方法,例如排序、二分查找、同步包装等。

示例:

List<String> list = new ArrayList<>();
// 可以将list反转
Collections.reverse(list);