关于list集合存储null的问题
工作中,遇到list集合存储null的问题,不确定list能否存储null值。于是写一些demo测试list,set,table,及map存储null的问题。
1.list之arraylist
public static void main(String[] args) {
String string= null;
List list= new ArrayList<String>();
System.out.println("size:"+ list.size());
list.add(string);
System.out.println("size:"+ list.size()+ ",list(i):"+list.get(0));
}
run:
size:0
size:1,list(i):null
总结:arraylist集合是能存储null的。
2.list之linkedlist
public static void main(String[] args) {
List list= new LinkedList<String>();
System.out.println("list.size():"+list.size());
String string= null;
list.add(string);
System.out.println("list.size():"+list.size()+", list.get(0):"+list.get(0));
}
run:
list.size():0
list.size():1, list.get(0):null
结论:linkedlist能存储null
3.set之hashset:
public static void main(String[] args) {
// TODO Auto-generated method stub
Set set= new HashSet<String>();
System.out.println("set.size():"+set.size());
String string= null;
String string2= null;
set.add(string);
for (Iterator<String> it= set.iterator() ; it.hasNext();) {
string2 = it.next();
}
System.out.println("set.size():"+set.size()+", set.iterator.next():"+string2);
}
run:
set.size():0
set.size():1, set.iterator.next():null
结论:hashset能存储null
4.set之treeset (1):
public static void main(String[] args) {
Set set= new TreeSet<String>();
System.out.println("set.size():"+set.size());
String string= null;
String string2= null;
set.add(string);
for (Iterator<String> it= set.iterator() ; it.hasNext();) {
string2 = it.next();
}
System.out.println("set.size():"+set.size()+", set.iterator.next():"+string2);
}
run:
set.size():0
Exception in thread "main" java.lang.NullPointerException
at java.util.TreeMap.compare(TreeMap.java:1188)
at java.util.TreeMap.put(TreeMap.java:531)
at java.util.TreeSet.add(TreeSet.java:255)
at com.westward.Demo3.main(Demo3.java:15)
4.set之treeset (2):
public static void main(String[] args) {
Set set= new TreeSet<String>();
System.out.println("set.size():"+set.size());
String string= "1";
String string2= null;
set.add(string);
for (Iterator<String> it= set.iterator() ; it.hasNext();) {
string2 = it.next();
}
System.out.println("set.size():"+set.size()+", set.iterator.next():"+string2);
}
run:
set.size():0
set.size():1, set.iterator.next():1
结论:treeset不能存储null
还有map,及table,未完待续...
关于list集合存储null的问题的更多相关文章
- 高度注意 Map 类集合 K/V 能不能存储 null 值的情况
集合类 Key Value Super 说明 Hashtable 不允许为 null 不允许为 null Dictionary 线程安全 ConcurrentHashMap 不允许为 null 不允许 ...
- Java基础知识强化之集合框架笔记14:List集合存储字符串并遍历
1. List集合存储学生对象并遍历: 需求:存储字符串并遍历 分析: (1)创建集合对象 (2)创建字符串对象 (3)添加字符串对象到集合中 (4)遍历集合 2. 代码示例: package cn. ...
- Java基础知识强化之集合框架笔记13:Collection集合存储学生对象并遍历
1. Collection集合存储学生对象并遍历: 需求:存储自定义对象并遍历Student(name,age) 分析: (1)创建学生类 (2)创建集合对象 (3)创建学生对象 (4)把学生对象添加 ...
- Java基础知识强化之集合框架笔记12:Collection集合存储字符串并遍历
1. Collection集合存储字符串并遍历 分析: (1)创建集合对象 (2)创建字符串对象 (3)把字符串对象添加到集合中 (4)遍历集合 2. 代码示例: package cn.itcast ...
- Java基础知识强化之集合框架笔记06:Collection集合存储自定义对象并遍历的案例
1.练习:用集合存储5个学生对象,并把学生对象进行遍历. 分析: (1)创建学生类(2)创建集合对象(3)创建学生对象(4)把学生添加到集合(5)把集合转成数组(6)遍历数组 2. 代码示例: Stu ...
- 实现斗地主纸牌游戏---洗牌 发牌 看底牌的具体功能------Map集合存储方法 遍历的应用
该Demo只是斗地主的游戏的一部分,实现的斗地主的组合牌 洗牌 发牌 看牌的功能,主要应用Map集合进行练习 package cn.lijun import java.util.ArrayList ...
- Java学习:Set接口与HashSet集合存储数据的结构(哈希表)
Set接口 java.util.Set接口 extends Collection接口 Set接口的特点: 不允许存储重复的元素 没有索引,没有带索引的方法,也不能使用普通的for循环遍历 java.u ...
- SQL Server的非聚集索引中会存储NULL吗?
原文:SQL Server的非聚集索引中会存储NULL吗? SQL Server的非聚集索引中会存储NULL吗? 这是个很有意思的问题,下面通过如下的代码,来说明,到底会不会存储NULL. --1.建 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_06 Set集合_4_Set集合存储元素不重复的原理
set集合元素为什么不能重复 集合重写了toString的方法所以打印是里面的内容 往里面存了三次abc 哈希表,初始容量是16个 set集合存储字符串的时候比较特殊 横着是数组,竖着就是链表结构.跟 ...
随机推荐
- Python3基础 help 查看内置函数说明
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 常用模块之 time,datetime,random,os,sys
time与datetime模块 先认识几个python中关于时间的名词: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行“ty ...
- hdu2552 (浮点数复杂运算的四舍五入)题解
三足鼎立 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- Shell变量知识进阶
一,Shell中特殊且重要的变量 $0结合dirname和basename分别取出脚本名称和脚本路径 [root@192-168-3-163 scripts]# cat test.sh #!/bin/ ...
- C#中dll附加配置文件
DLL-with-configuration-file带配置文件的dll http://www.codeproject.com/Tips/199441/DLL-with-configuration-f ...
- mysql链接 显示 error: 'Access denied for user 'root'@'localhost' (using password: NO)'
解决方案 https://stackoverflow.com/questions/2995054/access-denied-for-user-rootlocalhost-using-password ...
- 51nod 1183 编辑距离
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1183. 题意不再赘述. 分析:大概和LCS差不多的吧 但是我用LCS ...
- 软件设计师真题试题&&答案
软件设计师2013上半年上午试题及答案详解 下午试题 2013下半年上午答案 试题 下午答案 试题 2014上半年上午答案 2015上半年上午答案 2016上半年上午试题
- java代码实现highchart与数据库数据结合完整案例分析(一)---饼状图
作者原创:转载请注明出处 在做项目的过程中,经常会用到统计数据,同时会用到highchart或echart进行数据展示,highchart是外国开发的数据统计图插件, echart是我们国家开发的数据 ...
- testNG 学习笔记 Day2 配置testNG自带的监听器
IntelliJ IDEA配置testNG自带的监听器的时候,操作如下菜单栏中 run ----> 下拉菜单中的 Edit Configurations ----> 新矿口中TeatNG下 ...