为什么List没有提供swap,却在Collections里面有swap

逗泥丸的平方 2016-09-20 05:25:16
为什么JDK中,List没有要求实现swap方法,却在Collections里面有swap方法.

看起来感觉 list.swap(i,j) 要比Collections.swap(list,i,j)更舒服吧..

这是出于怎样的考虑呢?因为Collections是工具吗..
...全文
644 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
soton_dolphin 2016-09-22
  • 打赏
  • 举报
回复
引用 5 楼 qq_35209952 的回复:
[quote=引用 4 楼 fangmingshijie 的回复:] list的父类是collection,collections是jdk提供的一个工具类,没啥关联。
我倒不是纠结这个问题本身,只是不太理解,哪个层面上的东西值得放进接口?
引用 1 楼 soton_dolphin 的回复:
因为当时接口类里面还不允许有静态和默认方法,所以如果在List 接口里面定义一个方法,它的子类都需要实现这个方法。这样就出现了重复的代码。
如果只是为了避免重复,是不是可以在AbstractList(或者上面再加一级),然后提供一个swap方法?[/quote] 你可以查一下abstractList是什么时候才有的
逗泥丸的平方 2016-09-22
  • 打赏
  • 举报
回复
引用 4 楼 fangmingshijie 的回复:
list的父类是collection,collections是jdk提供的一个工具类,没啥关联。
我倒不是纠结这个问题本身,只是不太理解,哪个层面上的东西值得放进接口?
引用 1 楼 soton_dolphin 的回复:
因为当时接口类里面还不允许有静态和默认方法,所以如果在List 接口里面定义一个方法,它的子类都需要实现这个方法。这样就出现了重复的代码。
如果只是为了避免重复,是不是可以在AbstractList(或者上面再加一级),然后提供一个swap方法?
  • 打赏
  • 举报
回复
list的父类是collection,collections是jdk提供的一个工具类,没啥关联。
soton_dolphin 2016-09-21
  • 打赏
  • 举报
回复
引用 2 楼 qq_35209952 的回复:
[quote=引用 1 楼 soton_dolphin 的回复:] 因为当时接口类里面还不允许有静态和默认方法,所以如果在List 接口里面定义一个方法,它的子类都需要实现这个方法。这样就出现了重复的代码。
这样.. 这就是所谓的"组合"代替"继承"么.[/quote] 这里没有组合也没有继承,只是为了方便
逗泥丸的平方 2016-09-21
  • 打赏
  • 举报
回复
引用 1 楼 soton_dolphin 的回复:
因为当时接口类里面还不允许有静态和默认方法,所以如果在List 接口里面定义一个方法,它的子类都需要实现这个方法。这样就出现了重复的代码。
这样.. 这就是所谓的"组合"代替"继承"么.
soton_dolphin 2016-09-21
  • 打赏
  • 举报
回复
因为当时接口类里面还不允许有静态和默认方法,所以如果在List 接口里面定义一个方法,它的子类都需要实现这个方法。这样就出现了重复的代码。

62,614

社区成员

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

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