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

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

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

如何解决?

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

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

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

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

基本数据类型 包装类
byte Byte
short Short
boolean Boolean
char Charset
int Integer
long Long
float Float
double Double

示例

int i = ;
Integer in = new Integer(i);//手动将i包装为Integer类型对象
HashSet set = new HashSet();//定义一个Set集合
set.add(in);//将包装类对象加入该集合
System.out.println(set);//打印结果

同样的效果(自动包装)

int i = ;
Integer in = new Integer(i);//手动将i包装为Integer类型对象
HashSet set = new HashSet();//定义一个Set集合
set.add(in);//将包装类对象加入该集合
System.out.println(set);//打印结果

Java集合不能存放基本数据类型的更多相关文章

  1. Java集合:List、Set和Map的区别,ArrayList和LinkedList有何区别..........

    一.数组和集合的区别: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型): 集合可以存储和操作数目不固定的一组数据. 所有的JAVA集合都位于 java.util包中! J ...

  2. 【Java集合】Java中集合(List,Set,Map)

    简介: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据. 所有的JAVA集合都位于 java.util包中! JAVA集 ...

  3. S2:java集合框架

    Java集合就是一个容器.面向对象语言对事物的体现都是以对象的形式存在,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式.集合只用于存储对象,集合长度是可变的,集合可以 ...

  4. Java集合详解(一):全面理解Java集合

    概述 Java所有集合类都在java.util包下,支持并发的集合在java.util.concurrent(juc)包下. 集合与数组区别: 数组大小是固定的,集合大小可以根据使用情况进行动态扩容. ...

  5. Java集合数据类型

    Java集合如Map.Set.List等所有集合只能存放引用类型数据,它们都是存放引用类型数据的容器,不能存放如int.long.float.double等基础类型的数据. 1. 集合存储对象 Jav ...

  6. Java集合源码分析(三)LinkedList

    LinkedList简介 LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈.队列和双端队列来使用. LinkedList同样是非线程安全 ...

  7. 【JAVA集合框架之工具类】

    一.概述 JAVA集合框架中有两个很重要的工具类,一个是Collections,另一个是Arrays.分别封装了对集合的操作方法和对数组的操作方法,这些操作方法使得程序员的开发更加高效. public ...

  8. Java集合容器简介

    Java集合容器主要有以下几类: 1,内置容器:数组 2,list容器:Vetor,Stack,ArrayList,LinkedList, CopyOnWriteArrayList(1.5),Attr ...

  9. Java 集合深入理解(4):List<E> 接口

    点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 蓝瘦!香菇! 连着加班几天,醉了.学学 List 放松下! 在 Java 集合深入理解:Collection 中我们熟悉了 ...

随机推荐

  1. generator 生成器

    L=[i*i for i in range(10)] print(L) G=(i*i for i in range(10)) #变中括号为小括号 print(G) 另一种方法: fib(max): n ...

  2. k8s Docker私有仓库认证

    使用过K8s的小伙伴肯定会遇到一个问题,我们在使用自有的Docker仓库的时候都需要先登录用户名和密码,但是如果使用K8S怎么配置密码呢?在secret中有一个类型是docker-registry我们 ...

  3. C语言典型编程2

    关于C的一些小而精的编程,适合希望提升编程能力的初学者学习:关键编程也就几句,但思维可以迁移到其他编程语言.同一问题,算法多种. //任意整数的任意次方取后3位(算数取位)#include<st ...

  4. jmeter入门案例(二)

    jmeter入门简介(一)下载及元件介绍https://www.cnblogs.com/wish5714/p/9714930.html jmeter典型的http请求示例 业务场景 银行卡收单交易,模 ...

  5. java中java.exe,javac 在editplus中的配置

    java.exe,javac设置快捷键(editplus) 1.tools-preferences 2.add tools---program java关键字

  6. CentOS7编译安装mysql-5.6.43

    Step 1:安装编译需要的软件和工具 [root@node-1 ~]# yum install gcc gcc-c++ cmake ncurses-devel bison Step 2:创建mysq ...

  7. listview的gridview视图中,获取列中模板内的button按钮(找控件内的控件)

    点击“间隙”,获取“间隙”旁边隐藏的减号按钮(本图片未显示出来) private void TextBlock_MouseDown_2(object sender, MouseButtonEventA ...

  8. java_29打印流

    1打印流 PrintStream 和PrintWriter 不负责数据源  只负责数据目的 2.方法 public class Demo {    public static void main(St ...

  9. 观察者模式C#实现实例(一)

    1.用例情景 1)定义一个闹钟(目标类),里面我们感兴趣的是时间值times,当times大于9.15时,通知观察者. 2)定义两个观察者,userA,userB,当收到times值时,作出判断,当t ...

  10. Left Join B表,只取B表一条记录

    --用OUTER APPLY select b.* FROM a表 a OUTER APPLY () * from b表 WHERE [Name] = a.[AName] ORDER BY BNo d ...