数组list转换_参考

list转化成一个String[]

将List 通过 toArray(new String[0]) 转成一个String[]
在这里插入图片描述

java数组转List

List b = Arrays.asList(“a”, “b”, “b”, “c”, “c”); 这种写法构建一个类

//准备一个String数组
String[] strs = {"aa","bb","cc"};
//String数组转List
List<String> strsToList1= Arrays.asList(strs);
for(String s:strsToList1){
 System.out.println(s);
}

File[] 数组不能使用jdk新特性,只能转化为List后才能使用

Arrays.stream(array[]).forEach(record ->{});

File[] fileArray= file.listFiles();
Arrays.stream(fileArray).forEach(record ->{
    readFile(record.getPath());
});

构建List的简单方法

Book book = new Book();
book.setName("aaa");
List<Book> bookList = Collections.singletonList(book);
bookList.stream().forEach(item->{
    System.out.println("book = "+item.getName());
});

System.arrayCopy

数组的初始化Arrays.fill()

String[] strArray = new String[10];
Arrays.fill(strArray, 0, strArray.length, "init");
Arrays.stream(strArray).forEach(item-> System.out.println(item));

基本使用

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
代码解释:
  Object src : 原数组
int srcPos : 从元数据的起始位置开始
  Object dest : 目标数组
  int destPos : 目标数组的开始起始位置
  int length : 要copy的数组的长度
比如 :我们有一个数组数据 byte[] srcBytes = new byte[]{2,4,0,0,0,0,0,10,15,50}; // 源数组
byte[] destBytes = new byte[5]; // 目标数组
我们使用System.arraycopy进行转换(copy)
System.arrayCopy(srcBytes,0,destBytes ,0,5)
然后将srcBytes源数组中 从0位 到 第5位之间的数值 copy 到 destBytes目标数组中,在目标数组的第0位开始放置.
copy完的效果应该是 2,4,0,0,0,

数组扩容

public class Test2 {
    long[] createTasks = null;
    public static void main(String[] args) {
        Test2 test2 = new Test2();
        test2.addArray(100);
    }
    //数组扩容
    public void addArray(long input) {
        if (createTasks == null) {
            createTasks = new long[8];
        }
        //不需要扩容
        boolean putted = false;
        for (int i = 0; i < createTasks.length; ++i) {
            if (createTasks[i] == 0) {
                createTasks[i] = input;
                putted = true;
                break;
            }
            //看始扩控1.5位
            if (!putted) {
                long[] array = new long[createTasks.length * 3 / 2];
                System.arraycopy(createTasks, 0, array, 0, createTasks.length);
                array[createTasks.length] = input;
                createTasks = array;
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值