ArrayList的使用

概念:

ArrayList是一种有序可变的容器,ArrayList构造会自动创建长度为10的容器,超过10会自动增加

集合和数组的区别 :

​ 共同点:都是存储数据的容器
​ 不同点:数组的容量是固定的,集合的容量是可变的
集合底层也是数组,数组的效率会更好,但是功能有限,如果要存储的数据经常发生变化就使用集合

ArrayList的构造方法和成员方法:
public ArrayList()创建一个空的集合对象
public boolean add(E e)将指定的元素追加到此集合的末尾
public void add(int index,E element)在此集合中的指定位置插入指定的元素
public boolean remove(Object o)删除指定的元素,返回删除是否成功
public E remove(int index)删除指定索引处的元素,返回被删除的元素
public E set(int index,E element)修改指定索引处的元素,返回被修改的元素
public E get(int index)返回指定索引处的元素
public int size()返回集合中的元素的个数
    public static void main(String[] args) {//创建集合ArrayList<String> array = new ArrayList<String>();//public boolean add(E e)	将指定的元素追加到此集合的末尾array.add("hello");array.add("hello");array.add("world");array.add("java");System.out.println("第一次添加:" + array);// public void add(int index,E element)	在此集合中的指定位置插入指定的元素array.add(1, "我来个插队");System.out.println(array);// public boolean remove(Object o)	删除指定的元素,返回删除是否成功boolean r = array.remove("hello");System.out.println("是否删除成功" + r);System.out.println("删除后:" + array);// public E remove(int index)	删除指定索引处的元素,返回被删除的元素array.remove(2);System.out.println("删除后:" + array);// public E set(int index,E element)	修改指定索引处的元素,返回被修改的元素array.set(1,"helloPlus");System.out.println("修改后:" + array);// public E get(int index)	返回指定索引处的元素System.out.println(array.get(1));// public int size()	返回集合中的元素的个数System.out.println(array.size());}
键盘录入学生信息到集合:
    public static void main(String[] args) {//创建集合对象ArrayList<Student> array = new ArrayList<Student>();//为了提高代码的复用性,我们用方法来改进程序addStudent(array);//遍历集合,采用通用遍历格式实现for (int i = 0; i < array.size(); i++) {Student s = array.get(i);System.out.println(s.getName() + "," + s.getAge());}}public static void addStudent(ArrayList<Student> array) {//键盘录入学生对象所需要的数据Scanner sc = new Scanner(System.in);System.out.println("请输入学生姓名:");String name = sc.nextLine();System.out.println("请输入学生年龄:");int age = sc.nextInt();//创建学生对象,把键盘录入的数据赋值给学生对象的成员变量Student student = new Student(name, age);//往集合中添加学生对象array.add(s);}
删除注意:
    public static void main(String[] args) {// 创建集合ArrayList<String> list = new ArrayList<>();list.add("abc");list.add("123");list.add("123");list.add("45126");list.add("654");for (int i = 0; i < list.size(); i++) {String s = list.get(i);// 尽量用常量调equals,不要用变量if ("123".equals(s)) {list.remove(i);/**不做--的话就会有遗漏,实现的原理是:删除第一个指定元素以后,往后面判断的时候,所有的元素的素索引都会往前移动,当指针走到索引1,这时候索引1是第一个123,把它删掉了,然后从索引2整体向前移动,现在的索引1是第二个123,这时候指针又开始了++。就刚好错过了第二个123。如果加上--,在删除以后就会回退一个索引,然后循环又++,就不会错过了*/i--;}}System.out.println(list);}
集合筛选:
    public static void main(String[] args) {ArrayList<Student> list = new ArrayList<>();Student stu1 = new Student("韩信", 2);Student stu2 = new Student("李白", 23);Student stu3 = new Student("露娜", 24);list.add(stu1);list.add(stu2);list.add(stu3);ArrayList<Student> newList = getList(list);for (int i = 0; i < newList.size(); i++) {Student student = newList.get(i);System.out.println(student.getName() + ":" + student.getAge());}}private static ArrayList<Student> getList(ArrayList<Student> list) {// 创建新集合ArrayList<Student> newlist = new ArrayList<>();// 遍历集合,获取每一个学生对象for (int i = 0; i < list.size(); i++) {Student stu = list.get(i);// 调用getage判断年龄是否小于18int age = stu.getAge();if (age < 18) {// 把年龄小于18的学生存到新集合newlist.add(stu);}}return newlist;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/572317.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

与计算机交朋友优秀教案,《与计算机交朋友》教学设计-20210608120218.pdf-原创力文档...

《与计算机交朋友》教学设计【教材分析】本课选自青岛出版社 《小学信息技术》六年级上册第一单元 《计算机是怎样工作的》第 2 课《与计算机交朋友》的教学内容。本课的教学内容共分为三部分&#xff1a; 计算机的硬件系统、 计算机的软件系统与计算机系统。 主要介绍计算机硬…

【POJ 1845】 Sumdiv (整数唯分+约数和公式+二分等比数列前n项和+同余)

【POJ 1845】 Sumdiv 用的东西挺全 最主要通过这个题学了约数和公式跟二分求等比数列前n项和 另一种小优化的整数拆分 整数的唯一分解定理&#xff1a; 随意正整数都有且仅仅有一种方式写出其素因子的乘积表达式。 A(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn) 当中pi均为素数 约…

计算机语言2进制怎么计算,计算机语言二进制…八进制、十进制…怎样推算?数制是怎么读?...

满意答案hhaynyy2013.07.03采纳率&#xff1a;47% 等级&#xff1a;12已帮助&#xff1a;16403人其实每个进制的原理有一样&#xff0c;只是我们太习惯用十进制了(听说是因为人的十根手指的关系)&#xff0c;你想想二进制只用0和1表示实际数值&#xff0c;所以书写起来很‘累…

职称计算机word模拟题,2017年职称计算机考试Word2003模拟题及答案(1)

1、下列说法不正确的是(D)A、关闭文档时只需直接单击文档窗口右上角的“关闭”按钮即可B、打开一个已经存在的Word文档可以直接双击该图标C、也可以先打开Word2003&#xff0c;然后再打开Word文档D、在打开对话框中必须要选择相应的文件类型2、“菜单栏”中哪个下拉菜单有“打开…

分类分包思想

分类&#xff1a; 分类思想&#xff1a;分工协作&#xff0c;专人干专事 Dao&#xff1a;用于访问存储数据的数组或集合 Service&#xff1a;用于业务逻辑处理&#xff08;判断id是否存在&#xff09; Controller&#xff1a;用于和用户打交道&#xff08;接收需求&#xff0c;…

Linux命令之乐--sed

sed是stream edit的缩写&#xff0c;是处理文本非常重要的工具。 常见用法&#xff1a; 1. 替换文本 1.1 替换文本中的第一处符合的样式 sed s/pattern/replace_string file或者cat file | sed s/pattern/replace_string1.2 替换全局的符合的样式 sed s/pattern/replace_string…

9月计算机一级报名入口,北京市2018年9月计算机一级报名时间|网上报名入口【已正式开通】...

&nbsp&nbsp[导读]:北京市2018年9月全国计算机一级考试报名时间&#xff1a;6月11日至20日报名时间&#xff1a;2018年6月11日至20日24时。报名办法&#xff1a;考生须登陆北京市全国计算机等级考试网上报名系统网站(以下简称报名网站&#xff0c;网址&#xff1a;http&…

装饰器,迭代器,生成器

一、装饰器 无参装饰器&#xff1a; 1、示例1&#xff1a; 1 import time #加载时间模块2 def war(name): #定义装饰器3 def wari(): 4 start time.time() #定义开始时间5 name() #相当于执行下面的函数6 stop time.time() #定义结束时…

计算机控制中mcu,MCU学习1:单片机控制应用很广,它在智能控制中起什么作用?...

编撰&#xff1a;Aigo 艾国单片机是一种集成在电路芯片&#xff0c;采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等…

模板设计模式

概念&#xff1a; 固定的流程已经写好了&#xff0c;变化的流程定义成了抽象方法&#xff0c;被子类重写。 模板设计就是一种编码风格&#xff0c;把抽象类看作是一个模板&#xff0c;模板中不能决定的东西定义成抽象方法&#xff0c;让使用模板的去重写抽象方法实现需求 简单来…

与计算机病毒相关的小故事,我和计算机病毒的故事2000字论文

好文网为大家准备了关于我和计算机病毒的故事2000字论文的文章,好文网里面收集了五十多篇关于好我和计算机病毒的故事2000字论文好文,希望可以帮助大家。更多关于我和计算机病毒的故事2000字论文内容请关注好文网。ctrlD请收藏好文网为大家准备了关于我和书的故事200字范文,好文…

python的递归算法学习(1)

递归函数在函数内部&#xff0c;可以调用其他函数。如果一个函数在内部调用自身本身&#xff0c;这个函数就是递归函数。举个例子&#xff0c;我们来计算阶乘 n! 1 * 2 * 3 * ... * n&#xff0c;用函数 fact(n)表示&#xff0c;可以看出&#xff1a;fact(n) n! 1 * 2 * 3 *…

什么是方法重写

方法重写&#xff1a; 概念&#xff1a; 子类中出现与父类一模一样的方法时&#xff08;返回值类型&#xff0c;方法名和参数列表都相同&#xff09;&#xff0c;会出现覆盖效果&#xff0c;也称为重写或者复写。声明不变&#xff0c;重新实现。 方法重写的应用场景&#xff1…

计算机数学基础 视频讲解,计算机数学基础课件

《计算机数学基础课件》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《计算机数学基础课件(37页珍藏版)》请在人人文库网上搜索。1、计算机科学的数学基础,第一章&#xff1a;语言与正规语言,1.1 符号、符号串及其运算,符号和符号串在形式语言中是非常重要的基本概念…

C#缓存absoluteExpiration、slidingExpiration两个参数的疑惑

看了很多资料终于搞明白cache中absoluteExpiration&#xff0c;slidingExpiration这两个参数的含义。absoluteExpiration&#xff1a;用于设置绝对过期时间&#xff0c;它表示只要时间一到就过期&#xff0c;所以类型为System.DateTime&#xff0c;当给这个参数设置了一个时间时…

测试显卡cpu中文软件,显卡信息检测工具(GPUinfo)

国内比较牛的显卡识别软件&#xff0c;是gpu-z等多不能比的&#xff0c;可以显示硬件信息BIOS版本驱动信息显存类型频率信息。相关软件软件大小版本说明下载地址Gpuinfo-国内比较牛的显卡识别软件&#xff0c;是gpu-z等多不能比的&#xff0c;可以显示硬件信息 BIOS版本 驱动信…

Java代码块的基本使用

概念&#xff1a; 在Java中&#xff0c;使用 { } 括起来的代码被称为代码块 局部代码块&#xff1a; 位置: 方法中定义 特点&#xff1a;执行完就会在内存中消失 作用: 限定变量的生命周期&#xff0c;及早释放&#xff0c;提高内存利用率 public static void main(String[] ar…

Python 简易图形界面库easygui 对话框大全

easygui 安装 C:\> pip install easygui Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Collecting easygui Using cached https://pypi.tuna.tsinghua.edu.cn/packages/8e/a7/b276ff776533b423710a285c8168b52551cb2ab0855443131fdc7fd8c16f/easygui-…

计算机绘图模型的参数方程,关于曲线绘图与运动控制问题的研究.doc

文档介绍&#xff1a;关于曲线绘图与运动控制问题的研究姓名:张硕朱聪聪禹雪珂学号:201722060220172106102017210609专业:研究生组题目:关于曲线绘图与运动控制问题的研究摘要随着计算机的广泛应用,计算机辅助绘图在当今社会已成为计算机辅助设计的基础。本文的建模题目就是利用…

MathSystem

Math&#xff1a; 概述&#xff1a; Math 包含执行基本数字运算的方法 调用方式&#xff1a; Math类中无构造方法&#xff0c;但内部的方法都是静态的&#xff0c;可以通过 类名.进行调用 常用方法&#xff1a; 方法名 方法名说明public static int abs(int a)返回参数的绝对…