首页 > 其他分享 >数组和List互转

数组和List互转

时间:2024-05-15 15:41:01浏览次数:13  
标签:java String Arrays List list 数组 互转

数组转List

数组转List,使用JDK中java.util.Arrays工具类的asList方法。

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        String[] strs = {"aaa", "bbb", "ccc"};
        List<String> list = Arrays.asList(strs);
        for (String s : list) {
            System.out.println(s);
        }
    }
}

用Arrays.asList转List后,如果修改了数组内容,List受影响。
因为它的底层使用的Arrays类中的一个内部类ArrayList来构造的集合,在这个集合的构造器中,把我们传入的这个集合进行了包装而已,最终指向的都是同一个内存地址

List转数组

List转数组,使用List的toArray方法。无参toArray方法返回Object数组,传入初始化长度的数组对象,返回该对象数组。

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        String[] array = list.toArray(new String[list.size()]);
        for (String s : array) {
            System.out.println(s);
        }
    }
}

List用toArray转数组后,如果修改了List内容,数组不受影响。
当调用了toArray以后,在底层是它调用了Arrays.copyOf,进行了数组的浅拷贝,跟原来的元素就没啥关系了,所以即使List修改了以后,数组也不受影响。

标签:java,String,Arrays,List,list,数组,互转
From: https://www.cnblogs.com/worshipone/p/18194015

相关文章

  • 【java】【集合类】ArrayList扩容机制
    扩容规则1.ArrayList()无参构造扩容2.ArrayList(intinitialCapacity)扩容3.publicArrayList(Collection<?extendsE>c)扩容4.add(Objecto)扩容5.addAll(Collectionc)扩容要注意的是,以下所有代码中用反射方式来更直观地反映ArrayList的扩容特征,但从JDK9由于模......
  • repeater中嵌套放入RadioButtonList
    <asp:RepeaterID="rptList"runat="server"onitemdatabound="rptList_ItemDataBound"><HeaderTemplate><tablewidth="100%"border="0"cellspacing="0"cellpadding="0"......
  • jquery使用$.grep删除数组中的某个值
    vararr=[1,2,3,4,5];varvalueToRemove=3;//方法1:使用$.grep()方法arr=$.grep(arr,function(value){returnvalue!=valueToRemove;});console.log(arr);//[1,2,4,5]//方法2:使用Array.prototype.filter()方法(纯JavaScript)arr=arr.fi......
  • 创建二维动态数组
    1//#include<bits/stdc++.h>2#include<iostream>3#include<vector>4usingnamespacestd;5intmain(){6intn;7cin>>n;8//writeyourcodehere......910////1.使用一维数组模拟11//int*num=......
  • Vue数组变化的侦测的学习
    数组的监听有两种方法变更方法和替换数组####两者的区别就是变更方法会引起ui的自动更新即直接会显示在页面上,但是替换数组不会,变更方法push()pop()shift()unshift()splice()sort()reverse()替换数组concat()filter()slice()如何实现替换数组相当于是变更方法......
  • Tree树组件格式化数据、获取所有数据数组
     格式化树数据:functionreplaceNameWithTitle(data){//遍历数据数组returndata.map(item=>{//复制当前对象,以免修改原始数据constnewItem={...item};//将name属性替换为titlenewItem......
  • react什么时候用函数组件,什么时候用类组件
    在React中,使用函数组件还是类组件取决于你的需求和个人偏好。在过去,类组件是主要的React组件形式,但是随着ReactHooks的引入,函数组件也变得非常强大,两者之间的差异已经减小。以下是一些指导原则:简单的UI组件:对于简单的UI组件,如按钮、图标、展示静态内容的组件等,使用......
  • 超简洁的todolist工具,电脑桌面高效计划管理软件
    对于上班族来说,在电脑上使用一款高效计划管理软件至关重要。这样的工具不仅能帮助我们清晰地规划和追踪工作任务,还能有效提高工作效率,减少遗漏和延误。例如,当我们面临多个项目并行时,通过管理软件可以一目了然地查看各项任务的进度和优先级,从而合理分配时间和精力。那么,哪款电脑桌......
  • TypeScript 对象数组的类型
    在TypeScript中,你可以使用接口(interface)来定义这种对象数组的类型。接口允许你描述对象的形状,从而确保你的数据结构符合预期。对于给定的数据 [{"name":"小明","age":"18"},{"name":"小东","age":"10"}],你可以这样声明一个接口:interfacePerson{......
  • C#实现时间互转毫秒时间戳
    ///<summary>///DateTime类型转换为时间戳(毫秒值)///</summary>///<paramname="dateTime">时间</param>///<returns>13位时间戳</returns>staticlongDateToTicks(DateTime?dateTime){//北京时间相差8小时DateTimestartTime=......