集合和数组的相互转换

集合和数组的相互转换集合和数组相互转换很多时候API的方法只支持集合或数组,比如适配器类中的数据只支持集合,这时候我们就要把数组转换集合。

大家好,又见面了,我是你们的朋友全栈君。

集合和数组相互转换

很多时候API的方法只支持集合或数组,比如适配器类中的数据只支持集合,这时候我们就要把数组转换集合。

集合转换成数组

可以把String换成其他类

List<String>list;
String[] characters = list.toArray(new String[list.size()]);

数组转换成集合

String[] arr ;
List<String>list1= Arrays.asList(arr);

上面是使用API来完成,使用循环遍历也是可以方便做到的。
##数组转换成集合(循环遍历)

    public static List<String> getList(String[] arr){
        List<String>list=new ArrayList<String>();
        for(int i=0;i<arr.length;i++){
            list.add(arr[i]);
        }
           return list;
    }

将集合转换成数组(循环遍历)

    public static String[] getArr(List<String> list){
          String[] arr=new String[list.size()];
        for(int i=0;i<list.size();i++){
            arr[i]=list.get(i);
        }
        return arr;
    }

将字符串反转输出的一个示例

//被操作的字符串
String str = “Welcome today is a good day!”;

使用集合和数组的相互转换

//字符串转为字符数组 
char[] array = str.toCharArray();  

//数组转为集合 
List<Character> list = new ArrayList<Character>();  
for (int i = 0; i < array.length; i++) {  
    list.add(array[i]);  
}  

//反转 
Collections.reverse(list);  

//集合转为数组 
Character[] characters = list.toArray(new Character[list.size()]);  

//构建反转后的字符串 
StringBuilder sb = new StringBuilder();  
for (Character character : list) {  
    sb.append(character);  
}  

System.out.println(sb.toString());  

更简单的实现:使用StringBuilder的反转

StringBuilder sb = new StringBuilder(str); 
sb.reverse(); 
System.out.println(sb.toString()); 

算法,从两头往中间挤着交换前后的位置

//字符串转为字符数组 
    char[] array = str.toCharArray();  
    for (int low = 0, high = array.length-1; low < high; low++, high--) {  
        //交换位置 
        char temp = array[low];  
        array[low] = array[high];  
        array[high] = temp;  
    }  
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149244.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • vue项目解决跨域问题_跨域的解决方案

    vue项目解决跨域问题_跨域的解决方案在项目根目录下新建vue.config.js文件,里面内容如下module.exports={devServer:{proxy:{‘/api’:{target:’http://localhost:8080/’,//跨域请求地址changeOrigin:true,//开启代理,是否实现跨域pathRewrite:{.

  • APK签名命令「建议收藏」

    APK签名命令「建议收藏」apksigner,默认同时使用V1和V2签名进入AndroidSDK/build-tools/SDK版本,输入命令apksignersign–ks密钥库名–ks-key-alias密钥别名xxx.apk若密钥库中有多个密钥对,则必须指定密钥别名apksignersign–ks密钥库名–ks-key-alias密钥别名xxx.apk–ks-key-alias密钥库别名,若密钥库只有一个密钥对,则可省略,反之必选…

  • 如何用python制作3d游戏_【教程】12个步骤让你快速学会制作3D游戏

    如何用python制作3d游戏_【教程】12个步骤让你快速学会制作3D游戏原标题:【教程】12个步骤让你快速学会制作3D游戏Unity3D不仅是一款功能强大且易于上手的游戏引擎,更重要的是,它还可以被免费下载(它还有一个功能更强大的付费版,但其实你可以使用免费版本完成绝大部分工作)。你大可不必被它的名字误导,Unity既可以创建2d游戏也可以创建3d游戏。你可以使用C#,Java,或者一种和Python类似的称为Boo的语言进行编程。在本教程中,我将带你熟悉Un…

  • 蚁群算法和简要matlab来源

    蚁群算法和简要matlab来源

    2021年12月30日
  • python random.randint函数用法(random.randint()是什么意思)

    numpy.random.randint(low,high=None,size=None,dtype=’l’)函数的作用是,返回一个随机整型数,范围从低(包括)到高(不包括),即[low,high)。如果没有写参数high的值,则返回[0,low)的值。参数如下:low:int生成的数值最低要大于等于low。(hign=None时,生成的数值要在[0,low)区间内)high:i…

  • labelImg使用教程

    labelImg使用教程Anaconda环境安装Anaconda之后,在开始菜单下找到Anaconda文件夹找到AnacondaPrompt点击运行安装labelImgpipinstalllabelImg#直接命令行输入启动labelImglabelImg#直接命令行输入名称即可labelImg界面开始标注快捷键:W(创建方框),A(上一张),D(下一张)XML文件示例<annotation> <folder>夜读</folder>

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号