常用数据集合—List

本文深入探讨Java集合框架,包括List、Map、Set、Queue等核心接口的实现与使用,如ArrayList、LinkedList、Vector及线程安全的CopyOnWriteArrayList。解析不同数据结构的特点,如数组与链表的应用场景,以及在实际编程中的注意事项。

1、List、Map、Set、Queue、Array

2、数据结构:数组、链表

3、实现List方法的类Ctrl + T(设置的是Eclipse快捷键)或右键查找

4、这里就简单看下最常用的ArrayList

5、构造方法一目了然

6、添加数据,一条条添加或者添加集合

良好的代码习惯,数组判断边界,可以确认大小的,给定初始大小(默认大小是10)

获取数据:防止数组越界

修改数据:

删除数据:

 

 

 

正常遍历时删除须跳出循环,否则会报错,修改方法比较常见,自行百度吧

2、LinkedList

add方法,对头指针和尾部指针复制,Node中为双线链表

get方法 n/2

3、Vector与ArrayList基本一样,但是是线程安全的

4、Stack,栈,继承了Vector

 

5、CopyOnWriteArrayList写入数组时是线程安全的,如下

### Java 常用数据集合类和接口概述 Java 提供了一个强大的集合框架来处理各种数据结构。这些集合可以分为两大类别:`Collection` 和 `Map` 接口下的子集。 #### Collection 接口及其常见实现类 `Collection` 是一个顶层接口,表示一组对象的容器。它的主要子接口包括: - **List**: 存储有序、可重复的元素集合。常见的实现类有 `ArrayList`[^1] 和 `LinkedList`[^4]。 ```java import java.util.ArrayList; public class ListExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("Apple"); list.add("Banana"); System.out.println(list.get(0)); // 输出第一个元素 } } ``` - **Set**: 不允许存储重复元素的集合。常见的实现类有 `HashSet` 和 `TreeSet`[^4]。 ```java import java.util.HashSet; public class SetExample { public static void main(String[] args) { HashSet<Integer> set = new HashSet<>(); set.add(1); set.add(2); set.add(2); // 添加失败,因为不允许重复 System.out.println(set.size()); // 输出 2 } } ``` - **Queue**: 表示队列的数据结构,支持 FIFO(先进先出)。常见的实现类有 `PriorityQueue` 和 `ArrayDeque`。 ```java import java.util.PriorityQueue; public class QueueExample { public static void main(String[] args) { PriorityQueue<Integer> queue = new PriorityQueue<>(); queue.offer(3); queue.offer(1); System.out.println(queue.poll()); // 输出最小值 1 } } ``` #### Map 接口及其常见实现类 `Map` 是键值对映射的顶级接口,其主要实现类包括: - **HashMap**: 键值对无序存储,基于哈希表实现,不允许多个相同的键[^1]。 ```java import java.util.HashMap; public class HashMapExample { public static void main(String[] args) { HashMap<String, Integer> map = new HashMap<>(); map.put("Alice", 25); map.put("Bob", 30); System.out.println(map.get("Alice")); // 输出 25 } } ``` - **LinkedHashMap**: 继承自 `HashMap`,按插入顺序保存条目。 ```java import java.util.LinkedHashMap; public class LinkedHashMapExample { public static void main(String[] args) { LinkedHashMap<String, String> linkedMap = new LinkedHashMap<>(); linkedMap.put("Key1", "Value1"); linkedMap.put("Key2", "Value2"); System.out.println(linkedMap.keySet().toArray()[0]); // 按插入顺序输出 Key1 } } ``` - **TreeMap**: 按照自然顺序或指定比较器排序键值对。 ```java import java.util.TreeMap; public class TreeMapExample { public static void main(String[] args) { TreeMap<Integer, String> treeMap = new TreeMap<>(); treeMap.put(3, "Three"); treeMap.put(1, "One"); System.out.println(treeMap.firstKey()); // 输出最小键 1 } } ``` #### Iterable 接口的作用 `Iterable` 是集合框架的核心接口之一,定义了如何通过迭代器遍历集合中的元素[^2]。几乎所有集合类都实现了该接口,因此可以通过增强型 `for-each` 循环轻松遍历它们。 ```java import java.util.ArrayList; public class IterableExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("A"); list.add("B"); for (String item : list) { System.out.println(item); // 使用 for-each 遍历 } } } ``` ### 总结 以上展示了 Java 中几种常用集合类的功能与基本用法。每种集合都有特定的应用场景,开发者应根据实际需求选择合适的实现类以优化程序性能和功能表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值