数组与集合区别

本文介绍了Java中引用数据类型如CIAclass, interface, array的使用,展示了如何创建和操作User对象数组。同时,讨论了基本类型及其包装类,并详细阐述了数组的声明和初始化。此外,还对比了ArrayList和Vector的区别,包括它们的扩容策略和线程安全性。内容涵盖了集合的动态增长原理和预估容量的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引用数据类型:CIA class,interface,array
在这里插入图片描述

		User u1 = new User(1, "fage", "123");
        User u2 = new User(2, "fali", "dd");
        User u3 = new User(3, "jack", "ss");
        User[] user=new User[]{u1,u2,u3} ;
        System.out.println(user);
        System.out.println(user[0]);
        System.out.println(user[1]);
        System.out.println(user[2]);
[Lcom.qf.entity.User;@29453f44
User(id=1, userName=fage, password=123)
User(id=2, userName=fali, password=dd)
User(id=3, userName=jack, password=ss)

在这里插入图片描述
在这里插入图片描述
基本类型--------- 基本类型包装类
byte --------- Byte
short --------- Short
int ---------Integer
long ---------Long
float ---------Float
double ---------Double
char ---------Character
boolean ---------Boolean
在这里插入图片描述
数组声明方式:

 //下面两种是:声明+分配空间+赋值 三合一了。
 int[] ints = {1,2,3,4,5};
 int [] arr=new int[]{1,3,4,6};
 int[] ints = Arrays.copyOf(arr, 8);    //参数1为老数组,
                                  参数2为新数组的长度返回新数组 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

集合:

实现原理:采用动态对象数组实现。
空集合,首次调用add(E e)方法扩容,会将空集合扩容到10,之后如果再扩容,会增加原数组一半。
集合不适合增加,删除。适合查询
通常在定义new集合大小的时候,会加一个参数,预估一下大小。
但是线程不安全,单线程可使用。
在这里插入图片描述

Vector:

实现原理:采用动态对象数组实现。
默认构造 创建大小为10的数组。
扩容:当增量为0时,扩容一倍(原大小的二倍),当增量大于0时,扩容为原大小+增量。
多线程使用,使用了synchronized,线程安全,效率低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值