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

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(112.2);
		System.out.println(list);

运行结果为

[asdf, 12.2123, 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 list和数组的区别

java技术:怎样将ArrayList的值赋值给一个二维数组啊?

Java Arrays.asList

java如何将一个arraylist等量划分为5个新的arraylist集合?

java集合-ArrayList