在Java中,Map和List是两种常用的数据结构,用于存储和操作数据。
-
Map(映射)是一种键值对的集合,每个键都是唯一的。它提供了根据键来查找值的功能。常见的Map实现类有HashMap、TreeMap和LinkedHashMap。
- HashMap:基于哈希表实现,无序的,允许使用null键和null值。
- TreeMap:基于红黑树实现,按照键的自然顺序或自定义顺序进行排序。
- LinkedHashMap:基于哈希表和双向链表实现,保持插入顺序。
Map的常用方法包括:
- put(key, value):向Map中添加键值对。
- get(key):根据键获取对应的值。
- remove(key):根据键删除对应的键值对。
- containsKey(key):判断Map中是否包含指定的键。
- containsValue(value):判断Map中是否包含指定的值。
- keySet():返回Map中所有键的集合。
- values():返回Map中所有值的集合。
- entrySet():返回Map中所有键值对的集合。
示例代码:
-
Map<String, Integer> map = new HashMap<String, Integer>(); map.put("apple", 1); map.put("banana", 2); map.put("orange", 3); System.out.println(map.get("apple")); // 输出:1 map.remove("banana"); System.out.println(map.containsKey("orange")); // 输出:true for (String key : map.keySet()) { System.out.println(key + ": " + map.get(key)); } // 尝试打印被移除的键 System.out.println(map.get("banana")); // null
List(列表)是一种有序的集合,可以包含重复的元素。它提供了按索引访问和操作元素的功能。常见的List实现类有ArrayList和LinkedList。
- ArrayList:基于数组实现,支持随机访问,插入和删除元素的效率较低。
- LinkedList:基于双向链表实现,插入和删除元素的效率较高,但随机访问的效率较低。
List的常用方法包括:
- add(element):向List末尾添加元素。
- add(index, element):在指定位置插入元素。
- get(index):根据索引获取元素。
- set(index, element):根据索引修改元素。
- remove(index):根据索引删除元素。
- size():返回List的大小。
- contains(element):判断List是否包含指定的元素。
- indexOf(element):返回指定元素在List中的索引。
- subList(fromIndex, toIndex):返回指定范围内的子列表。
示例代码
List<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");
System.out.println(list.get(1)); // 输出:banana
list.remove(2);
System.out.println(list.contains("orange")); // 输出:false
for (String element : list) {
System.out.println(element);
}
综合代码
package com.mayikt.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test01 {
public static void main(String[] args) {
listLearningTestFunction();
mapLearningTestFunction();
}
public static void mapLearningTestFunction() {
System.out.println("mapLearningTestFunction ...");
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
System.out.println(map.get("apple")); // 输出:1
map.remove("banana");
System.out.println(map.containsKey("orange")); // 输出:true
for (String key : map.keySet()) {
System.out.println(key + ": " + map.get(key));
}
// 尝试打印被移除的键
System.out.println(map.get("banana")); // null
}
public static void listLearningTestFunction() {
System.out.println("listLearningTestFunction ...");
List<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");
System.out.println(list.get(1)); // 输出:banana
list.remove(2);
System.out.println(list.contains("orange")); // 输出:false
for (String element : list) {
System.out.println(element);
}
}
}