数组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;
}
}
}
}