集合

一只红烧虾 2020-05-18 02:53:58
Treeset集合中不能存放HashSet类型的集合吗?如果不能,为什么不能呢?
...全文
312 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰思雨 2020-06-01
  • 打赏
  • 举报
回复
是不是集合D的泛型写错了?要统一使用Collection作为泛型,因为,A,B,C的公共接口是Collection。
冰思雨 2020-06-01
  • 打赏
  • 举报
回复
你用泛型声明的集合D吗? HasSet<String> collectionA = new HashSet<>(); ...... TreeSet<Integer> collectionB = new TreeSet<>(); ...... ArrayList<Object> collectionC = new ArrayList<>(); ...... TreeSet<Collection> collectionD = new TreeSet<>(); collectionD.add(collectionA); collectionD.add(collectionB); collectionD.add(collectionC);
qq_39936465 2020-05-20
  • 打赏
  • 举报
回复
引用 3 楼 一只223317 的回复:
[quote=引用 2 楼 qybao的回复:]不太理解你的问题 是treeset存放hashset的元素,还是treeset存放hashset对象? 1 如果是指前者,处理LS说的treeset的元素不能为null外,treeset的元素还要实现Comparable接口,因为内部会调用Comparable的接口方法来排序(所以null元素调用接口方法会出空指针异常,非null元素如果没实现Comparable接口也会因为找不到接口方法而出错) 2 如果是指后者,因为hashset本身没有实现Comparable接口,所以不能存储
就是我创建了三个集合 : 一个hashset类型的集合a里面放String类型的元素 一个treeset类型的集合b里面放int类型的元素 一个arraylist类型的集合c里面放自定义类型的对象 然后我又创建了一个treeset类型的集合D,里面放置上面三个集合,结果运行时显示添加集合a到D中的语句出错了,这是为什么呢?[/quote] 如果是非空hashset可以自己手动建立方法存入treeset,想直接存是不可能的。
qybao 2020-05-18
  • 打赏
  • 举报
回复
不是说了吗,treeset只能添加实现了Comparable接口的对象。hashset没有实现Comparable接口,所以不能存入treeset
一只红烧虾 2020-05-18
  • 打赏
  • 举报
回复
引用 2 楼 qybao的回复:
不太理解你的问题
是treeset存放hashset的元素,还是treeset存放hashset对象?
1 如果是指前者,处理LS说的treeset的元素不能为null外,treeset的元素还要实现Comparable接口,因为内部会调用Comparable的接口方法来排序(所以null元素调用接口方法会出空指针异常,非null元素如果没实现Comparable接口也会因为找不到接口方法而出错)
2 如果是指后者,因为hashset本身没有实现Comparable接口,所以不能存储
就是我创建了三个集合 : 一个hashset类型的集合a里面放String类型的元素 一个treeset类型的集合b里面放int类型的元素 一个arraylist类型的集合c里面放自定义类型的对象 然后我又创建了一个treeset类型的集合D,里面放置上面三个集合,结果运行时显示添加集合a到D中的语句出错了,这是为什么呢?
qybao 2020-05-18
  • 打赏
  • 举报
回复
不太理解你的问题
是treeset存放hashset的元素,还是treeset存放hashset对象?
1 如果是指前者,处理LS说的treeset的元素不能为null外,treeset的元素还要实现Comparable接口,因为内部会调用Comparable的接口方法来排序(所以null元素调用接口方法会出空指针异常,非null元素如果没实现Comparable接口也会因为找不到接口方法而出错)
2 如果是指后者,因为hashset本身没有实现Comparable接口,所以不能存储

qq_39936465 2020-05-18
  • 打赏
  • 举报
回复
引用 楼主 一只223317 的回复:
Treeset集合中不能存放HashSet类型的集合吗?如果不能,为什么不能呢?
treeset不能放入null值, hashset可以放入一个null值。如果hashset有null ,treeset就存放不了

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧