文章目录
- Java集合框架:List,Set,Map,队列
-
- Java集合框架是什么?
- 如何使用?
-
- List
- Set
- Map
- 队列
- 什么场景使用?
- 优缺点是什么?
-
- List
- Set
- Map
- 队列
- Java示例
-
- List示例
- Set示例
- Map示例
- 队列示例
- 对比
Java集合框架:List,Set,Map,队列
Java集合框架是什么?
Java集合框架是一组用于存储和操作数据的类和接口。它提供了不同类型的集合,如List,Set,Map和队列,以满足不同的需求。
- List:有序的集合,允许重复的元素。
- Set:无序的集合,不允许重复的元素。
- Map:键值对的集合,每个元素都包含一个键和一个值。
- 队列:先进先出(FIFO)的集合,用于处理按顺序排列的元素。
如何使用?
List
List接口的常用实现类有ArrayList和LinkedList。可以使用以下步骤使用List集合:
- 导入List类和实现类的包:
import java.util.List;
和import java.util.ArrayList;
- 创建List对象:
List list = new ArrayList();
- 添加元素:
list.add("元素1");
- 访问元素:
String element = list.get(0);
- 遍历集合:使用for循环或者迭代器遍历集合。
Set
Set接口的常用实现类有HashSet和TreeSet。可以使用以下步骤使用Set集合:
- 导入Set类和实现类的包:
import java.util.Set;
和import java.util.HashSet;
- 创建Set对象:
Set set = new HashSet();
- 添加元素:
set.add("元素1");
- 判断元素是否存在:
boolean contains = set.contains("元素1");
- 遍历集合:使用for-each循环遍历集合。
Map
Map接口的常用实现类有HashMap和TreeMap。可以使用以下步骤使用Map集合:
- 导入Map类和实现类的包:
import java.util.Map;
和import java.util.HashMap;
- 创建Map对象:
Map map = new HashMap();
- 添加键值对:
map.put("键1", 1);
- 获取值:
int value = map.get("键1");
- 遍历集合:使用for-each循环遍历键或值。
队列
队列接口的常用实现类有LinkedList和PriorityQueue。可以使用以下步骤使用队列:
- 导入队列类和实现类的包:
import java.util.Queue;
和import java.util.LinkedList;
- 创建队列对象:
Queue queue = new LinkedList();
- 添加元素:
queue.add("元素1");
- 获取并删除队列头部的元素:
String element = queue.poll();
- 遍历队列:使用迭代器遍历队列。
什么场景使用?
- List:适用于需要按照元素的插入顺序进行操作的场景,可以包含重复的元素。
- Set:适用于需要保持唯一性的元素集合,不允许重复的元素。
- Map:适用于需要通过键值对进行操作的场景,每个键都是唯一的。
- 队列:适用于需要按照先进先出顺序处理元素的场景。
优缺点是什么?
List
优点:
- 可以按照插入顺序访问元素。
- 可以包含重复的元素。
缺点:
- 在大型数据集合中查找元素的效率较低。
Set
优点:
- 元素不重复,保持唯一性。
- 查找元素的效率较高。
缺点:
- 无序,不能按照插入顺序访问元素。
Map
优点:
- 可以通过键值对进行操作,便于查找和修改元素。
- 键是唯一的,保持唯一性。
缺点:
- 无序,不能按照插入顺序访问元素。
队列
优点:
- 按照先进先出的顺序处理元素。
缺点:
- 无法在中间插入或删除元素。
Java示例
List示例
import java.util.List;
import java.util.ArrayList;
public class ListExample {
public static void main(String[] args) {
ListString> list = new ArrayList>();
list.add("元素1");
list.add("元素2");
list.add("元素3");
for (String element : list) {
System.out.println(element);
}
}
}
Set示例
import java.util.Set;
import java.util.HashSet;
public class SetExample {
public static void main(String[] args) {
SetString> set = new HashSet>();
set.add("元素1");
set.add("元素2");
set.add("元素3");
for (String element : set)服务器托管网 {
System.out.println(element);
}
}
}
Map示例
import java.util.Map;
import java.util.HashMap;
public class MapExample {
public static void main(String[] args) {
MapString, Integer> map = new HashMap>();
map.put("键1", 1);
map.put("键2", 2);
map.put("键3", 3);
for (String key : map.keySet()) {
int value = map.get(key);
System.out.println(key + ": " + value);
}
}
}
队列示例
import java.util.Queue;
import java.util.LinkedList;
public class QueueExample {
public static void main(String[] args) {
QueueString> queue = new LinkedList>();
queue.add("元素1");
queue.add("元素2");
queue.add("元素3");
while (!queue.isEmpty()) {
String element = queue.poll();
System.out.println(element);
}
}
}
以上示例分别展示了List,Set,Map和队列的基本用法。根据具体需求选择合适的集合类型,以提高代码的效率和可读性。
对比
维度 | List | Set | Map | 队列服务器托管网 |
---|---|---|---|---|
实现类 | ArrayList、LinkedList、Vector等 | HashSet、LinkedHashSet、TreeSet等 | HashMap、LinkedHashMap、TreeMap等 | LinkedList、PriorityQueue等 |
元素 | 有序的、可重复的 | 无序的、不可重复的 | 以键值对的形式存储、键不可重复、值可重复的数据结构 | 先进先出的数据结构、支持插入、删除、查找等操作 |
存储 | 按索引顺序存储 | 无序存储 | 以键值对的形式存储 | 按插入顺序存储 |
访问 | 可以通过索引值对列表进行访问和修改 | 不能直接访问、可以通过迭代器进行访问 | 可以通过键值对进行访问和修改 | 可以通过队列头和队列尾进行访问和修改 |
性能 | 读取速度快,添加和删除速度较慢 | 添加和删除速度快,读取速度较慢 | 读取速度快,添加和删除速度较慢 | 添加和删除速度快,读取速度较慢 |
应用 | 适用于需要按索引顺序访问的情况 | 适用于需要去重的情况 | 适用于需要以键值对形式存储数据的情况 | 适用于先进先出的数据操作的情况 |
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: enq: TX – row lock contention 问题排查思路
问题原因 应用反应堵塞,检查数据库等待事件出现’enq: TX – row lock contention’ 业务更新或者删除同一行记录 对创建位图索引的列值更新 对主键或唯一键插入相同记录 解决方案 在enq: TX – row lock conten…