各位大佬好,今天看到一个ArrayList,我很郁闷,按照我之前的思路根本就不能赋值啊,数组1,数组2,经过搜索后发现只能用add这种笨方法,我特么有100w个也挨个add进去啊,这不是扯淡么?能参考此博文进行clone么?
I'm here waiting for you
1,clone or copyof or 直接赋值{},[]等形式尝试。
举例子如下:
- public class TestSomeFunction {
- public static void printArray(int[][] x){
- for (int i=0;i
- for (int j=0;j
- System.out.println("i="+i+",j="+j+",x[i][j]="+x[i][j]);
- }
- }
- }
- public static void main(String[] args) {
- int [][]x=new int[][]{{1,2},{3},{3}};
- printArray(x);
- int y[][]=new int[3][];
- y=x.clone();
- printArray(y);
- x[0][1]=12;
- printArray(x);
- printArray(y);
- }
简单数组的复制clone,只能是浅复制,改变后结果都变了,for循环复制肯定没有问题。
【注意:上面的数组更像是python中的列表,而不是矩阵,因为j是变化的。另外数组的维度必须给定,就是上面的3,否则初始化失败。】
现在放List中,
这玩意无法实现这种复制,下面一打印啥都没有,就是个空数组([]形式)
- List
array2 =new ArrayList<>(new Integer(12)); - System.out.println(array2);
小括号内如果是一个数,那就是表示初始化长度。
其他瞎操作根本不行。
2,初始化方法如下:
2.1空集合
- List
array = new ArrayList(){}; - System.out.println(array);
- #[]
后面的大括号可以不带,初始化后还可以继续进行add
2.2指定大小??还是长度啥的?其实无需指定,可以自己增加。
- List
array2 =new ArrayList<>(2); - System.out.println(array2);
- array2.add(12);
- array2.add(24);
- array2.add(36);
- System.out.println(array2);
指定了长度2.
2.3,上面的也可这么写
List array = new ArrayList(){{add(12);add(34);}};
2.4,快速初始化,将数组赋给它。
- Integer p[] = new Integer[]{1,2,3,4};
- List
array3 =new ArrayList<>(Arrays.asList(p)); - System.out.println(array3);
当然也可,
- List
array4=Arrays.asList(1,2,3,8,12,98); - System.out.println(array4);
上面的集合都可以直接打印的,当然也可挨个打印,如下:
- Object[] k = array2.toArray();
- System.out.println("down is print");
- for (Object i:k)
- System.out.println(i);
这个Object有点像cpp中的auto,自动定义类型。
2.4 数组里的集合
- List
array5[]=new ArrayList[2]; - array5[0]=new ArrayList<>(Arrays.asList(p));
- array5[1]=new ArrayList<>(Arrays.asList(p));
- System.out.println(array5[0]);
就是这种形式,里面的数组元素初始化方法只能用new这种快速形式,不能直接Array.asList()这种
下面这种也可以
- array5[1]=new ArrayList<>(){{Arrays.asList(q);}};
- array5[1]=new ArrayList<>(2){{add(21);}};
如果上面的array5[1]都写赋值,以最后一个为准,之前的赋值都没用了。替换了。
愿我们终有重逢之时,
而你还记得我们曾经讨论的话题。
-
相关阅读:
【CGSSA-BP预测】基于混合混沌-高斯变异-麻雀算法优化BP神经网络回归预测研究(Matlab代码实现)
物联网毕业设计 - 基于Arduino单片机的便携抽湿加湿器
基于Python的IP地址转换
【sqlserver】配置管理器打不开
基于微信小程序的机房设备故障报修平台
失业了却要瞒着家人装作天天上班的样子,是一种什么体验?
磁盘LVM扩容
springboot+乡村图书管理系统 毕业设计-附源码191505
09.16 周六|Move Dev Meetup上海站火热报名中
Kubernetes(k8s)上搭建一主两从的mysql8集群
-
原文地址:https://blog.csdn.net/SPESEG/article/details/126563458