工作中,遇到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的问题的更多相关文章

  1. 高度注意 Map 类集合 K/V 能不能存储 null 值的情况

    集合类 Key Value Super 说明 Hashtable 不允许为 null 不允许为 null Dictionary 线程安全 ConcurrentHashMap 不允许为 null 不允许 ...

  2. Java基础知识强化之集合框架笔记14:List集合存储字符串并遍历

    1. List集合存储学生对象并遍历: 需求:存储字符串并遍历 分析: (1)创建集合对象 (2)创建字符串对象 (3)添加字符串对象到集合中 (4)遍历集合 2. 代码示例: package cn. ...

  3. Java基础知识强化之集合框架笔记13:Collection集合存储学生对象并遍历

    1. Collection集合存储学生对象并遍历: 需求:存储自定义对象并遍历Student(name,age) 分析: (1)创建学生类 (2)创建集合对象 (3)创建学生对象 (4)把学生对象添加 ...

  4. Java基础知识强化之集合框架笔记12:Collection集合存储字符串并遍历

    1.  Collection集合存储字符串并遍历 分析: (1)创建集合对象 (2)创建字符串对象 (3)把字符串对象添加到集合中 (4)遍历集合 2. 代码示例: package cn.itcast ...

  5. Java基础知识强化之集合框架笔记06:Collection集合存储自定义对象并遍历的案例

    1.练习:用集合存储5个学生对象,并把学生对象进行遍历. 分析: (1)创建学生类(2)创建集合对象(3)创建学生对象(4)把学生添加到集合(5)把集合转成数组(6)遍历数组 2. 代码示例: Stu ...

  6. 实现斗地主纸牌游戏---洗牌 发牌 看底牌的具体功能------Map集合存储方法 遍历的应用

    该Demo只是斗地主的游戏的一部分,实现的斗地主的组合牌  洗牌  发牌 看牌的功能,主要应用Map集合进行练习 package cn.lijun import java.util.ArrayList ...

  7. Java学习:Set接口与HashSet集合存储数据的结构(哈希表)

    Set接口 java.util.Set接口 extends Collection接口 Set接口的特点: 不允许存储重复的元素 没有索引,没有带索引的方法,也不能使用普通的for循环遍历 java.u ...

  8. SQL Server的非聚集索引中会存储NULL吗?

    原文:SQL Server的非聚集索引中会存储NULL吗? SQL Server的非聚集索引中会存储NULL吗? 这是个很有意思的问题,下面通过如下的代码,来说明,到底会不会存储NULL. --1.建 ...

  9. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_06 Set集合_4_Set集合存储元素不重复的原理

    set集合元素为什么不能重复 集合重写了toString的方法所以打印是里面的内容 往里面存了三次abc 哈希表,初始容量是16个 set集合存储字符串的时候比较特殊 横着是数组,竖着就是链表结构.跟 ...

随机推荐

  1. sql逻辑查询语句的执行顺序

    SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN ...

  2. Java命令使用 jmap,jps,jstack,jstat,jhat,jinfo

    Jmap:可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等 Jmap是一个可以输出所有内存中 ...

  3. win10 字体渲染优化 色彩调整

    最近烧包买了个2k显示器,发现跟win10使用,一堆问题,最大的就是字体,其实应该买4k,那样正好设置200%字体,现在设置的124% 字体: 以前使用的是mactype这个软件 https://pa ...

  4. 【环境搭建】CDH版Hadoop环境搭建

    1.下载组件 首先去CDH网站上下载hadoop组件 地址:http://archive.cloudera.com/cdh5/cdh/5/ 注意版本号要与其他的组件CDH版本一致 2.环境配置 设置主 ...

  5. 让低版本浏览器支持html5的标签

    原理就是首先用js的createElement来创建,之后在使用 document.createElement('header'); <header> <hgroup>头部信息 ...

  6. UVa 11292 勇者斗恶龙

    https://vjudge.net/problem/UVA-11292 题意:有n条任意个头的恶龙,你希望雇一些其实把它杀死.一个能力值为x的骑士可以砍掉恶龙一个直径不超过x的头,且需要支付x个金币 ...

  7. Linux——shell简单学习(一)

    首先来一个小程序,来查看所在目录,以及该目录下的文件 #!/bin/sh # “#!”指定用sh执行shell脚本 #this is to show workstation # “#” 表示注释 ec ...

  8. 《剑指offer》第三十题(包含min函数的栈)

    // 面试题30:包含min函数的栈 // 题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min // 函数.在该栈中,调用min.push及pop的时间复杂度都是O(1). #i ...

  9. Codeforces 101487E - Enter The Dragon

    101487E - Enter The Dragon 思路:做的时候两个地方理解错了,第一个事我以为龙吸了水,水就干了,其实龙是在下雨之前吸的,下雨时湖水又满了,所以湖水永远不会干:第二个是以为只要找 ...

  10. iframe 通信问题

    iframe作用: 1:页面部分刷新(iframe也是一个window,html是完整的不是部分html片段) 2:跨域 3:父子window通信 iframe1.window.xx=xx;paren ...