当前位置: 首页 > news >正文

持有对象-基本概念

Collection接口是容器类统一都实现的接口

package com.example.demo;
import com.example.demo.demos.web.apple;
import com.example.demo.demos.web.orange;
import java.util.ArrayList;
import java.util.Collection;
public class TestClass {public static void main(String[] args) {Collection collection = new ArrayList<>();collection.add(new apple());collection.add(new orange());System.out.println(collection);collection.forEach(t->{System.out.println(t);});}}

所以都可以用Collection类型接收,调用通用方法,但是如果是LinkedList这些具有自己类特殊方法的,就不适合用Collection类型做向上转型,而是用具体的容器类去实现比较方便

添加一组元素

package com.example.demo;import java.util.Arrays;
import java.util.Collection;public class TestClass {public static void main(String[] args) {Collection collection = Arrays.asList(1, 2, 3, 4);collection.add(2);}}

这些容器类都是实现了Collection,所以都可以定义为Collection类型, Arrays.asList可以传入可变参数初始化一个数组,因为底层实现是数组,所以add方法会报错

Exception in thread "main" java.lang.UnsupportedOperationExceptionat java.util.AbstractList.add(AbstractList.java:148)at java.util.AbstractList.add(AbstractList.java:108)at com.example.demo.TestClass.main(TestClass.java:12)Process finished with exit code 1

可以用Collections.addAll添加一组元素,但是只能传入Collection类型,速度会比具体的容器类更快

package com.example.demo;import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;public class TestClass {public static void main(String[] args) {Collection collection = new ArrayList();collection.add(1);collection.add(2);collection.add(3);Collections.addAll(collection,5,6,7,7);System.out.println(collection);}}
http://www.dtcms.com/a/275369.html

相关文章:

  • 多 Agent 强化学习实践指南(一):CTDE PPO 在合作捕食者-猎物游戏中的应用详解
  • 检查输入有效性(指针是否为NULL)和检查字符串长度是否为0
  • 图像扭曲增强处理流程
  • 基于 AI 的大前端网络请求优化:动态调整与缓存策略
  • Nginx模块注册全流程揭秘:为什么Nginx模块化架构依然是Web服务器的“金标准”?
  • stack和queue的使用和模拟实现以及了解deque
  • 以数据为核心,以业务为导向,漫谈数据可视化应用
  • 网络编程员工管理系统
  • 【MogDB】一种基于ctid分片并发查询以提升大表查询性能的方式
  • RBAC权限模型深度解析:从理论到企业级实践
  • 贪心算法题解——跳跃游戏 II【LeetCode】
  • The Black Heart
  • 飞算 JavaAI 智能编程助手:颠覆编程旧模式,重构新生态
  • 【极客日常】后端任务动态注入执行策略的一种技术实现
  • 27.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--币种服务(一)
  • .net机器学习框架:ML.NET数据处理
  • 【嵌入式硬件实例】-555定时器实现倍压电路
  • 钉钉小程序开发环境配置与前端开发指南
  • 计算机毕业设计ssm基于SSM的萌宠交流平台 基于SSM的毛孩子互动分享与领养系统 SSM架构下的宠物社交·商城·救助一体化平台
  • Mac M芯片安装RocketMQ服务
  • 【Docker基础】Dockerfile指令速览:基础常用指令详解
  • 【STM32实践篇】:最小系统组成
  • 实战指南:用pmap+gdb排查Linux进程内存问题
  • 9.4 自定义SMC服务开发
  • springboot使用@Validated不起作用
  • 加法器学习
  • AI图像修复工具CodeFormer实测:马赛克去除与画质增强效果评测
  • Java使用Langchai4j接入AI大模型的简单使用(四)--整合Springboot
  • Window/linux获得程序运行目录C++
  • C++ Map 和 Set 详解:从原理到实战应用