1. List to Map
首先定义一个User类,包含用户名、用户ID和用户信息等属性。
public class User {
private String userName;
private String userId;
private String userInfo;
public User() {}
public User(String userName, String userId, String userInfo) {
this.userName = userName;
this.userId = userId;
this.userInfo = userInfo;
}
// getters and setters
}
### 1.1 使用foreach方法转换
public Map convertListToMapWithForeach(List users) {
Map map = new HashMap<>();
users.forEach(user -> map.put(user.getUserId(), user));
return map;
}
### 1.2 使用Stream API转换
public Map convertListToMapWithStream(List users) {
return users.stream()
.collect(Collectors.toMap(
User::getUserId,
user -> user,
(existing, replacement) -> replacement,
TreeMap::new
));
}
### 1.3 Map的遍历方法
Map map = convertListToMapWithStream(users);
// 使用增强for循环遍历
for (Map.Entry entry : map.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
// 使用Iterator遍历
Iterator> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry entry = iterator.next();
System.out.println(entry.getKey() + " : " + entry.getValue());
}
// 使用Lambda表达式遍历
map.forEach((key, value) -> System.out.println(key + " : " + value));
2. Array to List
将数组转换为列表,最常见的方式是使用Arrays.asList()
方法。
public class ArrayToListExample {
public static void main(String[] args) {
String[] array = {"a", "b", "c"};
List list = Arrays.asList(array);
for (String item : list) {
System.out.println(item);
}
}
}
3. List to Array
将列表转换为数组,可以使用Collection.toArray()
方法。
public class ListToArrayExample {
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
String[] array = list.toArray(new String[0]);
}
}
4. Array to Set 和 Set to Array
数组与集合之间的转换,可以通过先将数组转换为列表,再将列表转换为集合,或者直接使用集合的构造函数。
public class ArrayAndSetConversion {
public static void main(String[] args) {
// Array to Set
String[] array = {"a", "b", "c"};
Set set = new HashSet<>(Arrays.asList(array));
// Set to Array
array = set.toArray(new String[0]);
}
}
5. List to Set 和 Set to List
List和Set都是Collection接口的实现,因此它们之间的转换可以通过Collection.addAll()
方法或直接通过构造函数完成。
// List to Set
Set set = new HashSet<>(list);
set.addAll(list);
// Set to List
List list = new ArrayList<>(set);
list.addAll(set);