ArrayList不是继承List接口,是实现了List接口。你写成ArrayList arrayList = new ArrayList();这样不会有任何问题。和List list = new ArrayList();相比这2个写是有区别的。arrayList是一个ArrayList对象,它可以使用ArrayList的所有方法。List是接口,它是不可以被实例化的(接口是个抽象类),所以必须以它的实现类去实例化它。list对象虽然也是被实例化为ArrayList但是它实际是List对象,list只能使用ArrayList中已经实现了的List接口中的方法,ArrayList中那些自己的、没有在List接口定义的方法是不可以被访问到的。
我们说,用接口去做是有它的好处的,如果你把类型定义成ArrayList(也就是一个具体的实现类)那么你就只能接收这一种类型的数据了,如果你要是定义为List那么你不仅可以接收ArrayList的对象还可以接收LinkedList的对象,这样你的程序就灵活了。其实,你可以把JAVA中的子类对父类的继承和实现类对接口的实现,想像成血缘的一个延续。如果你指定了一个名字,那么你就决定了唯一的一个家庭成员。如果你只说姓的话,那么这一家人都可以。

List myList=new ArrayList()的理解的更多相关文章

  1. Vector与ArrayList 的理解

    最近在看Vector与ArrayList的源码,看下他们的区别与联系. Vector是线程安全的集合类,ArrayList并不是线程安全的类.Vector类对集合的元素操作时都加了synchroniz ...

  2. 对java中arraylist深入理解

    1.ArrayList插入删除一定慢么? 取决于你删除的元素离数组末端有多远,ArrayList拿来作为堆栈来用还是挺合适的,push和pop操作完全不涉及数据移动操作. 2.ArrayList的遍历 ...

  3. 【干货】用大白话聊聊JavaSE — ArrayList 深入剖析和Java基础知识详解(二)

    在上一节中,我们简单阐述了Java的一些基础知识,比如多态,接口的实现等. 然后,演示了ArrayList的几个基本方法. ArrayList是一个集合框架,它的底层其实就是一个数组,这一点,官方文档 ...

  4. JAVA常用集合源码解析系列-ArrayList源码解析(基于JDK8)

    文章系作者原创,如有转载请注明出处,如有雷同,那就雷同吧~(who care!) 一.写在前面 这是源码分析计划的第一篇,博主准备把一些常用的集合源码过一遍,比如:ArrayList.HashMap及 ...

  5. 正确理解java编译时,运行时以及构建时这三个概念

    Java中的许多对象(一般都是具有父子类关系的父类对象)在运行时都会出现两种类型:编译时类型和运行时类型,例如:Person person = new Student();这行代码将会生成一个pers ...

  6. ArrayList实现原理分析

    ArrayList使用的存储的数据结构 ArrayList的初始化 ArrayList是如何动态增长 ArrayList如何实现元素的移除 ArrayList小结 ArrayList是我们经常使用的一 ...

  7. 集合ArrayList

    /*集合ArrayList * 例如: * 1.创建:ArrayList<Egg> myList = new ArrayList<Egg>(); *      Egg类型的集合 ...

  8. ArrayList实现原理

    转载:http://wiki.jikexueyuan.com/project/java-collection/arraylist.html ArrayList 概述 ArrayList 可以理解为动态 ...

  9. Array和ArrayList的异同点【转】

    相信数组是大家在编程最常使用的,不论任何语言都存在数组这样的数据结构,由于C#语言是完全面向对象的,所以在C#中的数组也是对象,实际上就是Array类的实例,Array类的使用可以说是使用最频繁的,只 ...

随机推荐

  1. 使用GCD的dispatch_once创建单例

    使用GCD的dispatch_once创建单例 介绍了创建单例的方式,不过后来发现其实在ios 4.0后有更加简单的方式. 就是使用GCD的功能 代码如下: + (instantClass *)sha ...

  2. epoll函数及三种I/O复用函数的对比

    epoll函数 #include <sys/epoll.h>int epoll_create(int size)int epoll_ctl(int epfd, int op, int fd ...

  3. 设置ListView每条数据之间的间隔

    1:如果不需要分割线可以在xml布局文件中ListView下设置XML属性: android:divider="#00000000" android:dividerHeight=& ...

  4. BOT、BT、PPP形式介绍(1)

    BOT.BT.PPP形式介绍 BOT1.什么是BOT     BOT是英文Build-Operate-Transfer的缩写,即“建设-经营-转让”.实质上是基础设施投资.建设和经营的一种方式,以政府 ...

  5. DateTime字段控件值显示短格式的做法

    后台取dateTime格式,前台格式化就好了 <input type="text" name="txtPartyTime" id="txtPar ...

  6. 用BFS和DFS解决圆盘状态搜索问题

    人工智能课程的实验(我的解法其实更像是算法课程的实验) 用到的算法:深度优先搜索.宽度优先搜索(状态扩展的不同策略) 数据结构:表示状态的结构体.多维数组 (可能是最近做算法竞赛题的影响,这次并不像以 ...

  7. syslog_test.c 简单的syslog函数

    #cat syslog_test.c #include<stdio.h> #include<stdlib.h> #include<syslog.h> int mai ...

  8. Activity与Fragment之间的通信

    由于Fragment的生命周期完全依赖宿主Activity,所以当我们在使用Fragment时难免出现Activity和Fragment间的传值通信操作. 1.Activity向Fragment,通过 ...

  9. java 版本SQLHelper

    package com.jack.SQLHelper; import java.sql.*;import java.util.logging.*;import javax.swing.table.*; ...

  10. struts1配置文件之input

    <action path="/*Person" type="cn.itcast.PersonAction" scope="request&quo ...