关于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基础 issubclass 判断基类
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- Mac安装和卸载HomeBrew
安装方法: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/ ...
- newcode wyh的吃鸡(优势队列+BFS)题解
思路: 要用优势队列,因为有的+2,有的+1,所以队列中的步长是不单调的,所以找到一个答案但不一定最小,所以用优势队列把小的放在队首. 要记录状态,所以开了三维,题目和昨天做的那道小明差不多 vis开 ...
- ASP.NET MVC 中使用Ckeditor4.5 编辑器
一.在项目中添加Ckeditor4.5.11 (1) 新建 ASP.NET MVC5项目,解压缩ckeditor_4.5.11_standard.zip,在VS2015的解决方案资源管理器中将得到的“ ...
- Python定位SVG元素
svgelementXpath = "//div[12]/*[name()='svg']/*[name()='g']/*[name()='g'][2]/*[name()='g'][1]/*[ ...
- C语言位域解析&符号位扩展规则
从一个例子说起: int main(void){ union{ int i; struct{ ; ; ; }bits; }num; printf("Input an integer for ...
- [VIM插件]fedora22编译vim7.4对perl组件支持的问题
在fedora22下,重新编译安装vim7.4的时,在编译perl组件支持时,出现如下错误: /bin/perl -e 'unless ( $] >= 5.005 ) { for (qw(na ...
- cocos2dx 3.13 simulator的问题
下载新的cocos2dx 3.13,想使用simulator来运行lua项目,结果发现使用vs2013编译不通过. 1. 9>main.cpp(5): error C2146: 语法错误: 缺少 ...
- angular5 生命周期钩子函数
生命周期执行顺序ngOnChanges 在有输入属性的情况下才会调用,该方法接受当前和上一属性值的SimpleChanges对象.如果有输入属性,会在ngOnInit之前调用. ngOnInit 在组 ...
- 20170706wdVBA正则表达式提取题目
Public Sub GetContents() Dim Reg As Object Dim Matches As Object Dim OneMatch As Object Dim Index As ...