JAVA中的数组和List的分析

一、数组Array

1、数组在内存中是连续存储的,所以它的索引速度是非常快的,而且赋值和修改元素也很简单

2、申明数组时,必须同时指定数组的长度,数组的长度过长,会造成内存浪费,数组的长度过短,可能会造成数据溢出

3、数组只能存在类型一样的数据,(基本数据类型 或 引用类型)

        int[] arr1 = {1,2,3,4,5,6,7,8};
        System.out.println("arr1 = " + arr1);
        System.out.println("Arrays.toString(arr1) = " + Arrays.toString(arr1));

        int[][] arr2 = {{1,2,3,4},{5,6,7,8,9}};
        for (int i =0;i<arr2.length;i++){
            for (int j=0 ;j<arr2[i].length;j++){
                System.out.println("arr2[i][j] = " + arr2[i][j]);
            }
        }

二、集合Collection,List,Set

1、JAVA集合只能存放引用类型的数据,不能存放基本数据类型,但是集合可以存放不同类型的引用类型,因为存入集合的元素都被转化成了Object 类型,之后再引用集合中的类型需要强制类型转换,这就导致了集合的类型不安全,以及类型转换的性能损耗

2、接口List,集Set,都继承了Collection接口,

线性是一种逻辑结构,数据结构中的除去守卫元素外,其他元素都有唯一的钱去和后继

3、List 和Set的区别

List特点:元素有放入顺序,元素可重复,

Set特点:元素无放入顺序,元素不可重复,

4、List有三大实现类:ArrayList,LinkedList,Vector

4.1、ArrayList底层是以数组实现

4.2、LinkedList是双向链表实现,适合于经常实现增删操作,但是查询和修改的效率没有ArrayList和Vector快,

4.3、ArrayList 和 Vector类似,也是数组实现,但是它是同步的,是线程安全的,不会有并发产生的问题,但是效率要低于ArrayList

三、ArrayList初始化(4中方式)

public void test(){
        List list1 = new ArrayList();
        list1.add(1);
        list1.add(2);
        list1.add(3);
        
        List list2 = new ArrayList(){{
            add(11);
            add(22);
            add(33);
        }};

        List list3 = Arrays.asList(111,222,333);

        //list4中插入5个121212
        List list4 = Collections.nCopies(5,121212);
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java,有几种方法可以将数组转换为List。其一种方式是使用Arrays.asList()方法。这个方法将数组作为参数传入,并返回一个对应的List。例如,可以使用Arrays.asList(array)来将一个名为array的数组转换为List。 另一种方式是通过创建一个长度相同的ArrayList,并使用Collections.addAll()方法将数组的元素添加到List。例如,可以使用以下代码实现:ArrayList<String> list = new ArrayList<String>(array.length); Collections.addAll(list, array)。这种方式的优点是在需要对List进行增删改查操作时,可以提高操作速度。然而,这种方法不支持新增或删除元素。 还有一种方式是使用JDK 8引入的Stream流。可以通过Arrays.stream(array)方法将数组转换为Stream流,然后使用collect(Collectors.toList())方法将流转换为List。这种方式适用于需要对数组进行一系列操作后再转换为List的情况。 总之,根据具体需求,可以选择合适的方式将Java数组转换为List,并在之后根据需要进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [java数组List的几种方式](https://blog.csdn.net/weixin_46439070/article/details/127107255)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值