数组Array,集合List,Set,Map相互转换
程序员文章站
2022-05-14 09:07:09
...
package fengkuangjava.collection;
import org.junit.Test;
import org.omg.CORBA.OBJ_ADAPTER;
import java.lang.annotation.Repeatable;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class CollectionTest {
/**
* 定义数组
*/
int[] arr = {1,2,4,2,7,3,8,2,3,4};
String[] newArr = new String[]{"aaa","bbb","ccc"};
String[] newArr2 = {"aaa","bbb","ccc"};
/**
* 数组Array转集合List
*/
@org.junit.Test
public void arrayToList(){
//方法一: 使用Arrays工具类
System.out.println("使用Arrays.asList()方法");
List list = Arrays.asList(arr);
List<Object> listInt = Arrays.asList(arr);
List<String> listString = Arrays.asList(newArr);
//方法二:采用Java8新特性
System.out.println("使用Java8新特性方法");
List<Object> list2 = Stream.of(arr).collect(Collectors.toList());
System.out.println(list2);
}
/**
* 数组Array转集合Set
* 不能保证顺序
*/
@org.junit.Test
public void ArrayToList(){
//方法一:Arrays工具类
System.out.println("使用Arrays.asList()方法");
Set<Object> set2 = new HashSet<>(Arrays.asList(arr));
Set<String> setArr = new HashSet<>(Arrays.asList(newArr));
List list = Arrays.asList(arr);
List<String> listString = Arrays.asList(newArr);
Set set = new HashSet<>(list);
HashSet hashSet1 = new HashSet(list);
HashSet hashSet2 = new HashSet<>(list);
HashSet<String> hashSet3= new HashSet<>(list);
HashSet hashSet4 = new HashSet(listString);
HashSet hashSet5 = new HashSet<>(listString);
HashSet<String> hashSet6= new HashSet<>(listString);
//方法二:采用Java8新特性
System.out.println("使用Java8新特性方法");
Set<Object> set6 = Stream.of(newArr2).collect(Collectors.toSet());
System.out.println(set6);
}
/**
* 数组Array转Map
*/
@Test
public void ArrayToMap(){
System.out.println("ArrayToMap");
Map<Object,Object> map = new HashMap<>();
int i = 1;
for(Object o : newArr){
map.put(i++,o);
}
System.out.println("HashMap的值:" + map);
}
/**
* List转数组Array
*/
@org.junit.Test
public void ListToArray(){
System.out.println("ListToArray");
List<String> list = new ArrayList<>();
list.addAll(Arrays.asList(newArr));
System.out.println("打印list;"+ list);
//方法一
String[] strings = list.toArray(new String[list.size()]);
System.out.println(Arrays.toString(strings));
//方法二:
System.out.println("使用Java8新特性");
String[] strings2 = list.stream().toArray(String[]::new);
System.out.println(Arrays.toString(strings2));
}
/**
* List转为Set
*/
@org.junit.Test
public void ListToSet(){
System.out.println("遍历集合List,使用add方法或addAll方法");
Set<Object> set = new HashSet<>();
List<Object> list = new ArrayList<>(Arrays.asList(newArr2));
list.add("aaa");
//set.add(list);
System.out.println(set);
System.out.println("-----------");
for (Object i : list){
set.add(i);
}
set.add("bbb");
System.out.println( set.contains("bbb"));
System.out.println(set);
}
/**
* List转Map
*/
@Test
public void ListToMap(){
System.out.println("ListToMap");
Map<Object,Object> map = new HashMap<>();
List<Object> list = new ArrayList<>();
list.add("上海");
list.add("安徽");
list.add("江苏");
list.add("浙江");
//方法一
for(int i = 0;i<list.size();i++){
map.put(i,list.get(i));
}
System.out.println(map);
//方法二:Java8新特性
List<Book> bookList = new ArrayList<>();
bookList.add(new Book("平凡的世界",2004,"978702004845"));
bookList.add(new Book("战争与和平",1989,"9787020014071"));
bookList.add(new Book("百年孤独",1775,"9787215069657"));
for(int i = 0; i< bookList.size();i++){
System.out.println(bookList.get(i).toString());
}
Map<String,Integer> map2 = bookList.stream().collect(Collectors.toMap(Book::getName,Book::getReleaseYear));
System.out.println(map2);
}
/**
* 集合Set转为数组Array
*/
@org.junit.Test
public void SetToArray(){
//方法一
System.out.println("使用Set集合自带的toArray方法");
Set<Object> set = new HashSet<>();
set.addAll(Arrays.asList(newArr2));
Object[] objects = set.toArray(new Object[set.size()]);
System.out.println(Arrays.toString(objects));
//方法二:
System.out.println("使用Java8新特性");
String[] strings = set.stream().toArray(String[]::new);
System.out.println(Arrays.toString(strings));
}
/**
* Set转List
*/
@org.junit.Test
public void SetToList(){
Set<Object> set = new HashSet<>(Arrays.asList(newArr));
List<Object> list = new ArrayList<>(set);
//或者直接声明
List<Object> list2 = new ArrayList<>(new HashSet<>(Arrays.asList(newArr)));
System.out.println(list);
System.out.println(list2);
}
/**
* Set转Map
*/
@Test
public void SetToMap(){
System.out.println("SetToMap");
Map<Object,Object> map = new HashMap<>();
Set<Object> set = new HashSet<>();
set.add("北京");
set.add("上海");
set.add("深圳");
set.add("广州");
System.out.println(set);
Iterator iterator = set.iterator();
for(int i = 0;i<set.size();i++){
map.put(i,iterator.next());
}
System.out.println(map);
}
/**
* Map转Array
*/
@Test
public void MapToArray(){
System.out.println("MapToArray");
Map<String,String> map = new HashMap<>();
map.put("上海","上海");
map.put("安徽","合肥");
map.put("浙江","杭州");
map.put("广东","广州");
map.put("北京","北京");
Object[][] strings = new Object[map.size()][2];
Iterator iterator = map.entrySet().iterator();
for(int i = 0; i < map.size(); i++){
Map.Entry entry = (Map.Entry) iterator.next();
strings[i][0] = entry.getKey();
strings[i][1] = entry.getValue();
}
for(Object[] objects : strings) {
for (Object object : objects) {
System.out.print(object + " ");
}
System.out.println();
}
}
/**
* Map转List
*/
@Test
public void MapToList(){
System.out.println("MapToList");
Map<String,String> map = new HashMap<>();
map.put("上海","上海");
map.put("安徽","合肥");
map.put("浙江","杭州");
map.put("广东","广州");
map.put("北京","北京");
List<Object> objects = new ArrayList<>(map.keySet());
System.out.println(objects);
//list里放list
List<List<Object>> list = new ArrayList<>();
for(Object o : map.keySet()){
List<Object> list2 = new ArrayList<>();
list2.add(o);
list2.add(map.get(o));
list.add(list2);
}
System.out.println(list);
}
/**
* Map转Set
*/
@Test
public void MapToSet(){
System.out.println("MapToSet");
Map<String,String> map = new HashMap<>();
map.put("上海","上海");
map.put("安徽","合肥");
map.put("浙江","杭州");
map.put("广东","广州");
map.put("北京","北京");
Set<Object> objects = new HashSet<>(map.keySet());
System.out.println(objects);
}
//新建一个内部Book类用于Map测试
class Book{
private String name;
private Integer releaseYear;
private String isbn;
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", releaseYear=" + releaseYear +
", isbn='" + isbn + '\'' +
'}';
}
public Book(String name, Integer releaseYear, String isbn) {
this.name = name;
this.releaseYear = releaseYear;
this.isbn = isbn;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getReleaseYear() {
return releaseYear;
}
public void setReleaseYear(Integer releaseYear) {
this.releaseYear = releaseYear;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
}
}
下一篇: 移动端自动化测试框架搭建
推荐阅读
-
集合(11)——C#中List〈string〉和string[]数组之间的相互转换
-
C#控制台基础 List泛型集合与对应的数组相互转换实现代码
-
JAVA 集合List,数组,Set,Map,直接的相互转换
-
数组Array,集合List,Set,Map相互转换
-
Java语言-29:数组和 list、set集合的相互转换
-
Java 集合转换(数组、List、Set、Map相互转换)
-
java集合之Map键值与Set、List、数组转换
-
java集合转换(数组、list、Set)
-
Java 集合转换(数组、List、Set、Map相互转换)
-
Java 集合转换(数组、List、Set、Map相互转换)