前言
List,Set,Map的详细的用法,和他们的等等互相转化,遍历等等,
一般数据都是通过json格式传输的,在python中可以直接使用 json.loads(dict)将json格式字符串转为json格式在使用,在使用json.load()转为python对象, 将{1:小明, 2:小b, 3:小c, 4:小d, 5:小e}这种格式的字符串转为Map类型等等
Java提供了丰富的集合框架,包括List、Set和Map接口,分别对应线性表、集合和映射结构。下面分别介绍它们的详细用法和相互转换方法。
List
List是一个有序的线性表,允许重复元素。常用的实现类有ArrayList和LinkedList。创建一个List的示例:
List list = new ArrayList<>();
添加元素:
list.add("A");
list.add("B");
list.add("C");
遍历List的方法:
使用for循环:
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
使用增强for循环:
for (String item : list) {
System.out.println(item);
}
使用迭代器:
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
Set
Set是一个不允许重复元素的集合。常用的实现类有HashSet和TreeSet。创建一个Set的示例:
Set set = new HashSet<>();
添加元素:
set.add("A");
set.add("B");
set.add("C");
遍历Set的方法类似于List。
Map
Map是一个键值对的映射表,键唯一,值可以重复。常用的实现类有HashMap和TreeMap。创建一个Map的示例:
Map<Integer, String> map = new HashMap<>();
添加元素:
map.put(1, "小明");
map.put(2, "小b");
map.put(3, "小c");
遍历Map的方法:
使用键值对的方式遍历:
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
使用键遍历:
for (Integer key : map.keySet()) {
System.out.println(key + ": " + map.get(key));
}
List、Set和Map之间的转换
List转Set:
List list = new ArrayList<>();
// 添加元素 ...
Set set = new HashSet<>(list);
Set转List:
Set set = new HashSet<>();
// 添加元素 ...
List list = new ArrayList<>(set);
Map的键或值转List或Set:
Map<Integer, String> map = new HashMap<>();
// 添加元素 ...
List keyList = new ArrayList<>(map.keySet());
Set keySet = new HashSet<>(map.keySet());
List valueList = new ArrayList<>(map.values());
Set valueSet = new HashSet<>(map.values());
在Java中什么时候用的是put什么时候用的add
在Java中,put
和add
是用于不同类型的数据结构的方法。
put
是用于Map类型的数据结构,它用于将一个键值对添加到Map中,或者用新的值替换Map中已有的键的值。例如:
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
在上面的示例中,我们使用put
方法将三个键值对添加到Map中。
add
是用于集合类型的数据结构,例如List、Set等。它用于将一个元素添加到集合中。例如:
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
在上面的示例中,我们使用add
方法将三个元素添加到List中。
需要注意的是,add
方法只能添加一个元素,而put
方法可以添加一个键值对。此外,put
方法还可以用于替换Map中已有的键的值,而add
方法不具备这个功能。
Map.Entry和Map的区别
Map.Entry
和Map
是Java中两个不同的接口,用于表示不同的概念。
Map.Entry
接口表示一个键值对(key-value pair),包含getKey()
和getValue()
方法,用于获取该键值对的键和值。该接口通常用于遍历Map
中的键值对集合,比如通过entrySet()
方法获取Map
中所有键值对的集合。
Map
接口则表示一个键到值的映射关系,通常用于存储和访问数据,其中每个键都映射到一个唯一的值。Map
中的键和值可以是任意类型,并且不能包含重复的键(每个键只能映射到一个值)。Map
提供了一系列方法,例如put()
、get()
、containsKey()
等,用于向Map
中添加、获取和查询键值对。
因此,Map.Entry
和Map
都是用于处理键值对的接口,但它们的作用不同:Map.Entry
用于表示单个键值对,而Map
用于存储和管理多个键值对。
版权属于:戏人看戏博客网
本文链接:https://day.nb.sb/archives/490.html
若无注明均为戏人看戏原创,转载请注明出处,感谢您的支持!