java集合List学习(结合源代码)

2023-11-19

一、首先,我们来一个简单的程序

import java.util.ArrayList;
import java.util.List;
public class Person {
    public static void main(String[] args) {
        Person p1 = new Person();
        Person p2 = new Person();
        List list = new ArrayList();//List是一个接口
        list.add(p1);
        list.add(p2);//这里是将对象加入到list中
        for(int i=0;i<list.size();i++){//利用循环,将person对象全部一一取出
            Person p=(Person)list.get(i);//注意,这里一定要强制类型转换,因为List中取出的对象都是Object类型的,希望对你有所帮助
        }
    }
}

这个程序本身没有太大的特别之处,但是我们从一些简单的语句里面可以看到Java中的List集合的实现;

首先List是一个接口,查看下源代码:

确实是一个接口,而且是继承自泛型类Collection<E>的一个List<E>的接口;

我们在看看ArrayList源代:

ArrayList<E>是一个泛型类继承自AbstractList<E>;

在进一步,我们查看AbstractList源代码:

AbstractList<E>是一个泛型类,实现List<E>接口;

从而我们找到了List与ArrayList的联系:ArrayList类实现List接口,从而相当而言List是ArrayList的父类型

根据多态:父类型的引用可以指向子类型的对象

在:List list = new ArrayList();//List是一个接口 ---------------------------这段代码中list相当与List类型的一个引用,而ArrayList是子类型的对象,从而list可以指向new

ArrayList()所创建的对象

再看看下面的代码:

Person p1 = new Person();
Person p2 = new Person();
List list = new ArrayList();//List是一个接口
list.add(p1);
list.add(p2);//这里是将对象加入到list中

list.add(p1);我们可以知道list可以添加运行时才得知类型的对象

*我们又来看看下面的代码:

List list2 = new LinkedList();

 

 他也是List接口的实现类;

 


FROM:  http://www.cnblogs.com/super-d2/archive/2013/02/18/2916241.html



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java集合List学习(结合源代码) 的相关文章

随机推荐

  • 使用Python实现累积面积图 using Python for cumulative area plot

    Code import matplotlib pyplot as plt import numpy as np np random seed 444 data np random rand 5 10 cumsum axis 1 years
  • 互联网 API 接口幂等性设计

    WEB 资源或 API 方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用 幂等性是系统的接口对外一种承诺 而不是实现 承诺只要调用接口成功 外部多次调用对系统的影响是一致的 幂等性是分布式系统设计中的一个重要概念 对超时处理 系
  • angular中的全局方法和指令介绍1

    复习并总结Angular开发流程 0 下载angular 暴力angular 找到js拖拽过来 npm下载 1 引入 2 在要控制的标签上写上ng app 3 写controller 告诉angular哪部分dom结构有哪个controll
  • 用户体验与界面设计:常见的UI设计模式

    http www yixieshi com ucd 10761 html 交互设计师在设计线框图原型时 熟知常见的web设计模式很有帮助 做到 心中有数 才能创造出符合需求 用户易学易用的界面来 所谓 没有必要重复发明轮子 模式往往容易解决
  • 世界上最令人看起来感觉舒适的10种颜色

    世界上最令人感觉舒适的10种颜色 前端调色再也不怕找不到色码了 如果有打开微信 或者QQ 的话 按下Alt A键 或Ctrl Alt A键 鼠标放到色块上就能看到RGB了
  • python print()拼接打印内容包含空格,去除空格的方法

    python输出内容为拼接 或字符串中带有空格 想打印时候去掉所有空格 i 1 while i lt 4 print i end i 1 输出内容为 1 2 3 4 数字的前后都带有空格 可以使用 sep print i sep end 输
  • 路由器常见配置和解决方案

    示列1 分析 由于Windows系统的网关没有配置 如果配置好了再次ping不通的话 可能是由于DNS没有配置 转载于 https www cnblogs com l75790 p 11022632 html
  • rdb map出錯rbd sysfs write failed

    創建了一個rbd鏡像 rbd create size 4096 docker test 然後 在Ceph client端將該rbd鏡像映射為本地設備時出錯 rbd map docker test name client admin rbd
  • 微信小程序<open-data type=“userAvatarUrl“>真机无法获取头像问题/解决办法

    今天在做小程序的时候使用open data type userAvatarUrl 标签发现在本地开发的时候可以获取本人的头像 但是在真机上就无法显示解决办法 我们要换一种思路去处理 使用官方提供的方法 官网文档链接 wxml
  • 模块功能耗时长排查

    模块功能耗时长排查 1 场景介绍1 1 1 原有场景 OA服务 发送代办 代办推送到OA代办中心 OA代办中心 推送到 总部统一代办中心 我们排查请求耗时 发现 OA代办中心 推送到 总部统一代办中心的业务代码耗时非常久 1 2 原有场景总
  • Ubuntu配置NFS服务器(Linux挂载Linux)

    Ubuntu配置NFS服务器 服务器端的配置 Ubuntu安装NFS服务器端 sudo apt get install nfs kernel server 服务端查看版本 nfsstat s 在桌面上创建共享目录 mkdir share 修
  • ChatGPT提示词工程进阶教学

    ChatGPT提示词工程 1 两种大型语言模型LLM 1 1 基础大模型 base LLM 1 2 指令调优大模型 Instruction Tuned LLM 2 如何更清晰 具体地书写提示词 2 1 在提示词中使用 定界符 2 2 向模型
  • 正则表达式的贪婪与非贪婪匹配

    例 String str 地点 北京市123区456 测试测试 测试 要匹配在 地点 之后并且在 之前的内容 贪婪匹配 正则表达式一般趋向于最大长度匹配 也就是所谓的贪婪匹配 例如上面的str 使用正则 Patter p lt 地点 默认是
  • 【面试刷题】——指针存的是什么

    指针 Pointer 是一种用于存储变量或数据对象内存地址的数据类型 指针存储的是内存地址 这个内存地址指向计算机内存中的某个特定位置 这个位置存储着实际的数据 当你创建一个指针变量时 它会指向另一个变量的内存地址 从而允许你通过该指针来访
  • linux内部调用摄像头的第三方程序(命令):cheese

    linux内部调用摄像头的第三方程序 命令 cheese sudo apt get install cheese 关于cheese的使用可能会出现异常 Clutter WARNING Whoever translated default L
  • PHP实现发送邮件(附代码)

    发送邮寄功能的实现用到了PHP中的phpmailer函数包 它支持openssl和sockets 下载地址 下载后找到class phpmailer php class smtp php这两个文件 和你的代码放在一个目录 要实现发送邮件的功
  • mipi协议_MIPI系列之“MIPI CSI/DSI接口的FPGA实现”

    欢迎FPGA工程师加入官方微信技术群 点击蓝字关注我们FPGA之家 中国最好最大的FPGA纯工程师社群 本文主要介绍MIPI D PHY在FPGA上的实现 随着camera和显示技术的发展 MIPI接口在实际运用中越来越广泛 MIPI接口协
  • Solaris 10以太网卡设置

    前言 Solaris操作系统的以太网卡 以下简称网卡 设置 是一个老生常谈的话题 网上的相关资料也是汗牛充栋 数不胜数 但对刚刚接触Solaris的朋友来说 最需要的大概是一篇简明通俗 易读易用的操作指南 鉴于此 本文将网卡设置过程中涉及的
  • Robotframework 入门教程(二)

    变量 RF用 分别表示标量 列表 和字典 对应的就是python中的sre list和dict RF中Variables用来创建变量 修改我们的demo robot如下 对应于python的语法 var value list1 a b c
  • java集合List学习(结合源代码)

    一 首先 我们来一个简单的程序 import java util ArrayList import java util List public class Person public static void main String args