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

我们在使用集合或者数组时得到最多的异常就是数组下表越界异常 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'}] 输出默认值

今天先写到这明天继续

集合框架以及Map(一)的更多相关文章

  1. Java集合框架之map

    Java集合框架之map. Map的主要实现类有HashMap,LinkedHashMap,TreeMap,等等.具体可参阅API文档. 其中HashMap是无序排序. LinkedHashMap是自 ...

  2. 第19章 集合框架(3)-Map接口

    第19章 集合框架(3)-Map接口 1.Map接口概述 Map是一种映射关系,那么什么是映射关系呢? 映射的数学解释 设A,B是两个非空集合,如果存在一个法则,使得对A中的每一个元素a,按法则f,在 ...

  3. Java集合框架之Map接口浅析

    Java集合框架之Map接口浅析 一.Map接口综述: 1.1java.util.Map<k, v>简介 位于java.util包下的Map接口,是Java集合框架的重要成员,它是和Col ...

  4. 【JAVA集合框架之Map】

    一.概述.1.Map是一种接口,在JAVA集合框架中是以一种非常重要的集合.2.Map一次添加一对元素,所以又称为“双列集合”(Collection一次添加一个元素,所以又称为“单列集合”)3.Map ...

  5. 十七、Java基础---------集合框架之Map

    前两篇文章中介绍了Collection框架,今天来介绍一下Map集合,并用综合事例来演示. Map<K,V> Map<K,V>:Map存储的是键值对形式的元素,它的每一个元素, ...

  6. Java集合框架中Map接口的使用

    在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...

  7. [黑马程序员] 集合框架2——Map系 & 集合工具类(Collections、Arrays)

    ---------------------- ASP.Net+Android+IO开发..Net培训.期待与您交流! ---------------------- 0. 集合框架按其所实现的接口, 大 ...

  8. 集合框架之Map接口

    Map是将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. Map 接口提供三种collection视图,允许以键集.值集或键-值映射关系集的形式查看某个映射的内容.映射顺序定 ...

  9. 三大集合框架之map

    Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象. Map没有继承于Collection接口 从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象. Map是 ...

随机推荐

  1. 循环语句(循环for与while等)

    1.1for循环 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  2. CSRF漏洞原理说明与利用方法

    翻译者:Fireweed 原文链接:http://seclab.stanford.edu/websec/ 一 .什么是CSRF Cross-Site Request Forgery(CSRF),中文一 ...

  3. 浅谈HashMap原理,记录entrySet中的一些疑问

    HashMap的底层的一些变量: transient Node<K,V>[] table; //存储数据的Node数组 transient Set<java.util.Map.Ent ...

  4. Spring Boot 之 Hello World 战记

    1. Maven创建SpringBoot项目 2. application.properties spring.session.store-type=none // 解决默认的30+编译错误 3. d ...

  5. HEOI 十二省联考退役记

    Day -1 简要的说了些注意事项 一整天都在刷树套树的水题 退役的感觉近了 Day 0 早上收拾好东西去了火车站之后 火车站居然还没有开门 等了半天 我们是从衡水到德州再到秦皇岛 到了德州之后 去车 ...

  6. python要点记录

    1.字典:当存储的key数目在几万到几十万之间效率最高.

  7. ES6之新增let命令使用方法

    let命令的用法 let是es6中的声明一个变量的命令,只在它声明的代码块中有效,出了这个代码块就会报错.也非常适合for循环,在循环中i的值只在循环语句中生效,在外边取不到的. var命令声明的是一 ...

  8. Java 并发编程——Executor框架和线程池原理

    Java 并发编程系列文章 Java 并发基础——线程安全性 Java 并发编程——Callable+Future+FutureTask java 并发编程——Thread 源码重新学习 java并发 ...

  9. 爬虫URL去重

    这个要看你想抓取的网页数量是哪种规模的.如果是千万以下用hash表, set, 布隆过滤器基本可以解决,如果是海量的......嗯我也没做过海量的,不过hash表之类的就别想了,内存根本不够,分割线下 ...

  10. mongo 授权访问

    1.授权远程也可以访问 - 首先修改mongodb的配置文件 让其监听所有外网ip 编辑文件:/etc/mongodb.conf 修改后的内容如下: bind_ip = 0.0.0.0 port = ...