关于list集合存储null的问题

工作中,遇到list集合存储null的问题,不确定list能否存储null值。于是写一些demo测试list,set,table,及map存储null的问题。

1.list之arraylist

1 public static void main(String[] args) {
2        String string= null;
3        List list= new ArrayList<String>();
4        System.out.println("size:"+ list.size());
5        list.add(string);
6        System.out.println("size:"+ list.size()+ ",list(i):"+list.get(0));
7 }

run:

   size:0
   size:1,list(i):null

总结:arraylist集合是能存储null的。

2.list之linkedlist

1 public static void main(String[] args) {
2       List list= new LinkedList<String>();
3       System.out.println("list.size():"+list.size());
4       String string= null;
5       list.add(string);
6       System.out.println("list.size():"+list.size()+", list.get(0):"+list.get(0));
7 }

run:
   list.size():0
   list.size():1, list.get(0):null

结论:linkedlist能存储null

3.set之hashset:

 

 1 public static void main(String[] args) {
 2         // TODO Auto-generated method stub
 3         Set set= new HashSet<String>();
 4         System.out.println("set.size():"+set.size());
 5         String string= null;
 6         String string2= null;
 7         set.add(string);
 8         for (Iterator<String> it= set.iterator() ; it.hasNext();) {
 9             string2 =  it.next();
10         }
11         System.out.println("set.size():"+set.size()+",  set.iterator.next():"+string2);
12 }

run:
  set.size():0
  set.size():1,  set.iterator.next():null 

结论:hashset能存储null

4.set之treeset (1):

 1 public static void main(String[] args) {
 2            Set set= new TreeSet<String>();
 3            System.out.println("set.size():"+set.size());
 4            String string= null;
 5            String string2= null;
 6            set.add(string);
 7            for (Iterator<String> it= set.iterator() ; it.hasNext();) {
 8                  string2 =  it.next();
 9            }
10            System.out.println("set.size():"+set.size()+",  set.iterator.next():"+string2);
11 }

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,未完待续...

 

转载于:https://www.cnblogs.com/westward/p/5161411.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RedisTemplate可以方便地存储List类型的集合。使用RedisTemplate的opsForList()方法可以进行List的相关操作。比如,使用range方法可以获取缓存中的指定区间数据。 如果要将List转换为JSON对象进行存储,可以使用com.alibaba.fastjson.JSON和com.alibaba.fastjson.JSONObject来进行转换。首先要导入这两个类,然后使用StringRedisTemplate来存储List转换后的JSON字符串。具体的代码如下所示: ```java import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @Autowired private StringRedisTemplate stringRedisTemplate;<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [使用RedisTemplate缓存List的一系列操作示例](https://blog.csdn.net/weixin_42216142/article/details/93514503)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [java 用redisTemplate 的 Operations存取list集合](https://blog.csdn.net/weixin_30315723/article/details/101726536)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值