引言:
集合在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);