Java中List,Set,数组Arrays相互转化

前言

很多场合需要进行转换(例如力扣中

数组转换其他时比较容易,反过来就需要操作一番

以下转换的方法并不唯一,但确保简洁易懂

List与数组

1.数组转List

常规的方法:从数组中拿出元素放进list

int[] num={
    
    1,3,5,2};
List<Integer> list = new ArrayList<>();
for(int num : nums)
{
    
    
  list.add(num);
}

用工具类或者库函数:

String[] s = {
    
    "A", "B", "C", "D","E"};
List<String> list = Arrays.asList(s);

2.List转数组

String[] dest = list.toArray(new String[0]);//new String[0]是指定返回数组的类型
System.out.println("dest: " + Arrays.toString(dest));

Set与数组

1.数组转set

这个比较容易,从数组中拿出元素放进set(同时会自动去重)

2.Set转数组

这个需要操作一下

常规做法:

int[] res = new int[len];
int i=0;

Iterator<Integer> iter = set.iterator();
while(iter.hasNext())
     res[i++] = iter.next();

set中toArray方法

List与Set

1.List转Set

List<String>list = new ArrayList<String>();
list.add("c");
list.add("d");
list.add("a");
list.add("a");

可能会导致数据丢失(set会自动去重)
方法一:

Set<String> set = new HashSet<String>(list);

方法二:

Set<String> set2 = new HashSet<String>();
set2.addAll(list);

2.Set转List

Set<String>set = new HashSet<String>();
set.add("c");
set.add("d");
set.add("a");
set.add("a");

方法一:

List<String> list = new ArrayList<String>(set);

方法二:

List<String> list2 = new ArrayList<String>();
list2.addAll(set);

字符串与字符数组

字符数组转字符串:
public String(char[] chs)

字符串转字符数组:
char[ ] toCharArray()

示例:

// 字符数组转字符串
char[] chs ={
    
    'a','b','c'}; 
String s3 = =new String(chs);

// 字符串转字符数组
String str = "Hello World";
char[] cstr = str.toCharArray();

猜你喜欢

转载自blog.csdn.net/ji_meng/article/details/126988520