java集合ArrayList如何赋值?
Posted 小李飞刀李寻欢
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java集合ArrayList如何赋值?相关的知识,希望对你有一定的参考价值。
各位大佬好,今天看到一个ArrayList,我很郁闷,按照我之前的思路根本就不能赋值啊,数组1,数组2,经过搜索后发现只能用add这种笨方法,我特么有100w个也挨个add进去啊,这不是扯淡么?能参考此博文进行clone么?
For deep learning QQ Second Group 629530787
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<x.length;i++)
for (int j=0;j<x[i].length;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<Integer> array2 =new ArrayList<>(new Integer(12));
System.out.println(array2);
小括号内如果是一个数,那就是表示初始化长度。
其他瞎操作根本不行。
2,初始化方法如下:
2.1空集合
List<Integer> array = new ArrayList<Integer>();
System.out.println(array);
#[]
后面的大括号可以不带,初始化后还可以继续进行add
2.2指定大小??还是长度啥的?其实无需指定,可以自己增加。
List<Integer> 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<Integer> array = new ArrayList<Integer>()add(12);add(34);;
2.4,快速初始化,将数组赋给它。
Integer p[] = new Integer[]1,2,3,4;
List<Integer>array3 =new ArrayList<>(Arrays.asList(p));
System.out.println(array3);
当然也可,
List<Integer>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<Integer> 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]都写赋值,以最后一个为准,之前的赋值都没用了。替换了。
愿我们终有重逢之时,
而你还记得我们曾经讨论的话题。
java集合ArrayList
ArrayList
java集合(一) List
List
java中的集合主要有List、Set、Map
List集合代表一个元素有序,可重复的集合,集合每个元素都有其对应的索引。List集合默认按元素添加顺
序设置元素的索引,例如第一次添加的元素索引为,第二次添加的索引为1……
1)List的定义
List<Object> list=new ArrayList<Object>();
以上的代码则表示定义了一个名为list的一个List集合,它存放的数据类型为Object。
2)List赋值
List<Object> list=new ArrayList<Object>();
list.add("asdf");
list.add(123);
list.add(true);
list.add(1,12.2);
System.out.println(list);
运行结果为
[asdf, 12.2, 123, true]
list.add方法则是为list集合中添加数据,如果前面参数1不写下标,则会默认在list的末尾追加,如果前面写了,则会在下标位置穿插进去添加数据,但是注意下标要已经定义值,或者下标为长度的值,否则则会报错。可以看出添加的不同的数据类型也全部都存入了进去,因为List的类型是object类型的集合,所以可以存入不同的数据,
3)List获取数据
1、方法一:通过foreach循环遍历,取list的每一个值
for (Object object : list) {
System.out.println(object);
}
结果为:
asdf
123
true
12.2
2、方法二:通过List的get方法,进行下标的取值
list.size():方法返回list的长度
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
结果为:
asdf
123
true
12.2
4)List删除
List删除的方法为.remove(index);
List<Object> list=new ArrayList<Object>();
list.add("asdf");
list.add(123);
list.add(true);
list.add(2,12.2);
list.add("cai");
list.add("list");
list.remove(1); //删除下标为0的数据
list.remove("asdf"); //删除list集合中"asdf"数据
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
运行后的结果为:
12.2
true
cai
list
以上的代码表示为,定义list集合,用add方法对list进行赋值,在用remove方法将参数下标的数据删除,最后在通过list的get方法进行获取
ArrayList的初始长度为10,当接近当前长度的时候,会自动扩容50%长度,与数组的不同为,不需要定义长度,可以随用随加
5)ArraysList与HashSet的区别
(1)重复对象
list方法可以允许重复的对象,而set方法不允许重复对象
(2)null元素
list可以插入多个null元素,而set只允许插入一个null元素
以上是关于java集合ArrayList如何赋值?的主要内容,如果未能解决你的问题,请参考以下文章
Java ArrayList<String>中有10个元素,怎么在遍历这个集合时把里面的10个元素赋值给10个变量?
java技术:怎样将ArrayList的值赋值给一个二维数组啊?