当前位置: 首页 > news >正文

展示网站开发/网站主页

展示网站开发,网站主页,门户网站做seo,广告东莞网站建设技术支持最近在刷回溯算法时&#xff0c;遇见了List<Integer> A new ArrayList<>(); LinkedList<Integer> B new LinkedList<>();这类型的表达方式 很好奇的问题是&#xff1a; 1、List<Integer> A new ArrayList<>();为什么是正确的写法 2…

最近在刷回溯算法时,遇见了List<Integer> A = new ArrayList<>();

LinkedList<Integer> B = new LinkedList<>();这类型的表达方式

很好奇的问题是:

1、List<Integer> A = new ArrayList<>();为什么是正确的写法

2、List<Integer> A = new List<>();为什么是错误的写法

3、LinkedList<Integer> B = new LinkedList<>();为什么改成List<Integer> B = new LinkedList<>();就无法使用removeLast()方法了?

第一个和第二个问题可以一起回答:

首先我们从ArrayList的定义来看,ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。

ArrayList 继承了 AbstractList ,并实现了 List 接口

(List是一个接口,不能实例化,因此List<Integer> A = new List<>();是错误的写法)

下图出自菜鸟教程runoob

其实在项目设计时,也有这类问题。例如service层会使用

Service service = new ServiceImpl();

在Service层我们定义了一些方法,然后在ServiceImpl中重写

这样的作用是什么呢?如果我需要使用一个新的 NewServiceImpl(),我只需要换成对应的实现类即可。这也就是多态性的由来,这种方式的好处是:

  1.提高了代码的可维护性

  2.提高了代码的扩展性

因为一个接口有多个实现类的话,就相当于将方法声明和方法实现解耦,方便维护代码

并且复用了接口,提高了代码的扩展性。

所以 List<Integer> A = new ArrayList<>();也就是实例化了一个ArrayList对象后把上溯到了List。此时它是一个List对象了,但是有些ArrayList独有的属性和方法,它就不能再用了。

并且顺带一提的是,ArrayList list=new ArrayList();这句话意思是创建一个ArrayList对象,它保留了其所有属性。

那么LinkedList<Integer> B = new LinkedList<>();为什么改成List<Integer> B = new LinkedList<>();就无法使用removeLast()方法了?

因为removeLast()方法是属于LinkedList类中的方法,前者的表达保留了所有方法,而后者其实本质上是List对象,没办法使用LinkedList类的独有方法。

那么我们会发现一个问题,我为什么要定义List<Integer> A = new ArrayList<>();??那不是意味着ArrayList()独有的方法没法调用,那么他上溯到List的意义是什么呢?

其实大多数时候ArrayList()独有的方法我们是用不到的,并且这样的写法也很好的解释了面向接口编程,除非要使用ArrayList()独有的方法,我们才会使用ArrayList list=new ArrayList()。

http://www.rdtb.cn/news/562.html

相关文章:

  • 怀化物流网站建设报价/八八网
  • 重庆网站建设哪家公司那家好/黑帽seo是什么意思
  • 如何形容网站/怎样做网站
  • 怎么做中英文版网站/河南网站seo
  • 专业网站建设明细报价表/免费网站在线观看人数在哪
  • 优良的定制网站建设制作商/竞价托管外包费用
  • 如何建设网站挣钱/品牌传播策略
  • 网站开发建设/怎样制作网页设计
  • 云游戏网站在线玩/百度集团
  • 自己做商城网站/百度站长平台网站提交
  • 湖南响应式网站建设公司/网络营销推广机构
  • 南京500元做网站/百青藤广告联盟
  • 日本做a的小视频在线观看网站/html网页制作网站
  • 网络规划设计师具体干什么/做博客的seo技巧
  • 珠海网站优化/上海网络营销seo
  • 深圳品牌网站/重庆自动seo
  • 做求职网站/推广联系方式
  • 有没有可以做app的网站/网站整合营销推广
  • 合肥做网站的价格/百度拉新推广平台
  • wordpress底部加友链/网站内容优化方法
  • 网站 页面风格 建设/软件推广平台
  • 现在中国空间站有几个人/无锡营销型网站建设
  • 营销网站怎么做/郑州seo技术外包
  • 石景山网站建设/重庆整站seo
  • 海西州公司网站建设/青岛疫情最新情况
  • 360的网站排名怎么做/seo网络推广招聘
  • 网站建设技术经费预算/上海何鹏seo
  • b2c的运营模式是什么/seo人工智能
  • 安阳网站建设方案/中企动力做网站推广靠谱吗
  • 网站怎么做飘窗/百度推荐现在为什么不能用了