集合又称容器,编程思想中对其的定义为持有对象

我们在使用集合或者数组时得到最多的异常就是数组下表越界异常 Java.lang.ArrayIndexOutOfBoundsException这篇文章我们不讨论异常

java的容器分为2部分 严格来说 Map接口下的子类并不属于集合框架 属于一个独立的体系

图片来源于https://blog.csdn.net/biexiaofei/article/details/77031003

看完这两张图片是不是感觉很复杂,没关系 知识是一点点积累的,今天我们从Collection接口说起

在此之前普及一个小知识 关于集合为什么不能存放基本类型数据

原文来自:https://blog.csdn.net/likun1239656678/article/details/84294606

1.泛型的定义:在程序中我们将一个对象放入集合中,但是集合不会记住对象的类型,当我们在次使用对象的时候,对象变为Object类型,而程序中还是原来的类型,我们必须要自己转换其类型,为了解决这个问题,则提出泛型。

2.泛型要求包容的是对象类型,而基本数据类型在Java中不属于对象。但是基本数据类型有其封装类,且为对象类型。

3.想放int类型,要放Integer类型不能直接放int(基本数据类型)。

Collection接口

定义:一种存放对象的方式

package com;

import java.util.*;

public class Demo {
/**
*
* @param args
*/
public static void main(String[] args) {
Collection<Integer> collection
=new HashSet<Integer>();
collection.add(1);
collection.add(1); //输出结果为[1]
//直接使用Collection接口时需要注意一点 Set子接口 因为Set集合不允许存在重复元素 虽然不会报错但是会只显示一个元素
System.out.println(collection.toString());
//java.util 包下有一个Arrays的可以与容器进行互操作例如这样Arrays.asList(1,2,3,4,5)
Collection <Integer> collection1=
new ArrayList<Integer>(Arrays.asList(1,2,3,4,5));
System.out.println(collection1.toString());
//[1, 2, 3, 4, 5] 有字面意思就可以看出是吧一个数组当做集合来使用初始化集合collection1
//更简便的方法addAll()
collection.addAll(collection1);
System.out.println(collection.toString());
//[1, 2, 3, 4, 5] 因为向上造型set实现类的作用 所以把多余的1去掉
}
}

好了 基本的存放元素说完了 我们存放一个对象试试

  Collection<Apple>  collection
=new HashSet<Apple>();
Apple apple
=new Apple();
collection.add(apple);
System.out.println(collection.toString());
//[com.Apple@1b6d3586] 输出结果是一个字符串 这里为什么没有输出Apple的属性是因为Apple类没有复写toString()方法
System.out.println(collection.toString());
//[Apple{size=0, color='null'}] 输出默认值

今天先写到这明天继续

最新文章

  1. Change the Target Recovery Time of a Database (SQL Server) 间接-checkpoints flushcache flushcache-message
  2. Java中的static关键字解析
  3. WPF 仪表盘 刻度盘 动态 加载中 开源
  4. SQLite的WAL机制
  5. poj 2503:Babelfish(字典树,经典题,字典翻译)
  6. 用js操作表格
  7. maven,spring,mybatis集成错误
  8. MFC如何获取编辑框中输入的内容
  9. underscorejs-countBy学习
  10. STM32的RTC万年历显示问题
  11. 【机器学习实战】第14章 利用SVD简化数据
  12. c#发送get请求
  13. xampp的安装和配置
  14. JQ 实现监测input中值的变化并绑定到另个input
  15. npm是什么
  16. MT【103】二阶递推找规律
  17. Python中函数的参数传递与可变长参数
  18. python之private variable
  19. (总结)MySQL自带的性能压力测试工具mysqlslap详解
  20. int文档

热门文章

  1. LG的nexus5(32GB版本 - 821)-TOT-底包 可用于救砖!
  2. npm start时报错 npm ERR!Windows_NT 6.1.7601
  3. samba服务器的安装与配置(之前是因为没有把共享文件权限放开!)(windows7和centOS6)
  4. [Objective-C语言教程]数据封装(27)
  5. web渗透-sqli-labs-master 下载与安装
  6. the type initializer for &#39;system.drawingcore.gdiplus&#39; threw an exception
  7. Basic Calculator - Stack(表达式计算器)
  8. [Xamarin] 簡單實作ListActivity (转帖)
  9. Linux启动与关闭WIndows服务记录
  10. CKEditor图片上传实现详细步骤(使用Struts 2)