集合和数组的区别对比

集合和数组的区别:

共同点:都是存储数据的容器;

不同点:数组的容量是固定的,集合的容量是可变的;

注释:如果存储的数据,长度经常发生改变,推荐使用集合。

容器概念:简单理解就是盒子。

 

注释:数组都可以存基本数据类型和引用数据类型

          集合只能寄存引用数据类型,如果想要村基本数据类型,需要对应的包装类。

原因分析:Java集合不能存放基本数据类型,只能存放对象的引用。

每个集合元素都是一个引用变量,实际内容都存放在堆内或方法区里面,

但是基本数据类型是在栈内存上分配空间的,栈上的数据随时会被收回。

如何解决?

可以通过包装类,把基本数据类型转化为对象类型,存放引用。

更方便的,由于有了自动拆箱和装箱功能,基本数据类型和其对应对象

之间的转换变得很方便,把基本数据类型存入集合中可以自动存,系统

会自动将其装箱成封装类,然后将其加入到集合当中。

基本数据类型包装类
byteByte
shortShort
booleanBoolean
charCharset
intInteger
longLong
floatFloat
doubleDouble

 

 

例如:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如果你想要从多个数组中按顺序取出与原来的所有组合都不相同的数字,可以按照以下步骤进行: 1. 将所有数组合并成一个大数组,保持原有的顺序。 2. 创建一个空的集合(set),用于存储已经出现过的数字。 3. 遍历大数组,对于每个数字,判断它是否已经在集合中出现过。 4. 如果是第一次出现,将该数字存储在结果数组中,并将该数字添加到集合中。 5. 如果不是第一次出现,跳过该数字。 6. 如果结果数组中的数字组合与原来的所有数组都不相同,结束遍历。 7. 如果结果数组中的数字组合与原来的所有数组有相同的数字组合,删除结果数组中所有出现在原来数组中的数字,继续遍历大数组。 8. 重复步骤3-7,直到遍历完整个大数组。 下面是一个 Python 代码示例,演示如何实现上述步骤: ```python a1 = [1, 2, 3, 4, 5] a2 = [2, 4, 6, 8, 10] a3 = [3, 5, 7, 9, 11] # 合并所有数组 a = a1 + a2 + a3 # 存储结果的数组 result = [] # 存储已经出现过的数字的集合 seen = set() # 遍历大数组 for num in a: # 如果该数字没有出现在集合中 if num not in seen: # 存储该数字 result.append(num) # 将该数字添加到集合中 seen.add(num) # 如果结果数组中的数字组合与原来的所有数组都不相同 if not any(set(result) == set(arr) for arr in [a1, a2, a3]): break # 如果结果数组中的数字组合与原来的所有数组有相同的数字组合 else: # 删除结果数组中所有出现在原来数组中的数字 result = [num for num in result if num not in set(a1 + a2 + a3)] print(result) ``` 输出结果为:`[6, 8, 7, 9, 11]`。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳光不锈@

如果有帮助的话,打赏一下吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值