Java集合的基础知识

目录

Java集合的基础知识

JavaArrayList成员方法

Java集合的练习

01-添加字符串并遍历

02-添加数字并遍历

03-添加学生对象并遍历1

04-添加学生对象并遍历2


Java集合的基础知识

JavaArrayList成员方法

在Java中,ArrayList 是一个可调整大小的数组实现,它属于 java.util 包。以下是 ArrayList 类中用于增删查改操作的一些常用方法:

  1. 增加元素:

    • add(E e): 将指定的元素添加到列表的末尾。
    • add(int index, E element): 在列表的指定位置插入指定元素。
  2. 删除元素:

    • remove(Object o): 删除列表中出现的第一个指定元素(如果存在)。
    • remove(int index): 删除列表中指定位置的元素。
  3. 查找元素:

    • get(int index): 返回列表中指定位置的元素。
    • indexOf(Object o): 返回列表中指定元素的第一次出现的索引,如果列表不包含该元素,则返回 -1。
    • lastIndexOf(Object o): 返回列表中指定元素的最后一次出现的索引,如果列表不包含该元素,则返回 -1。
  4. 修改元素:

    • set(int index, E element): 用指定元素替换列表中指定位置的元素。
  5. 列表大小和清空:

    • size(): 返回列表中的元素数。
    • isEmpty(): 如果列表不包含元素,则返回 true
    • clear(): 移除列表中的所有元素。
  6. 检查存在性:

    • contains(Object o): 如果列表包含指定的元素,则返回 true
  7. 遍历列表:

    • 使用迭代器 iterator(): 返回列表中元素的迭代器,用于遍历。
    • 使用增强 for 循环直接遍历 ArrayList

下面是一些使用这些方法的简单示例:

import java.util.ArrayList;public class ArrayListExample {public static void main(String[] args) {// 创建ArrayListArrayList<String> list = new ArrayList<>();// 增加元素list.add("Apple");list.add("Banana");list.add(1, "Grapes"); // 在索引1处添加元素// 查找元素String item = list.get(0); // 获取第一个元素int index = list.indexOf("Banana"); // 查找"Banana"的索引// 修改元素list.set(2, "Cherry"); // 将索引2的元素替换为"Cherry"// 删除元素list.remove("Apple"); // 删除"Apple"list.remove(0); // 删除索引0处的元素// 列表大小和清空int size = list.size(); // 获取列表大小boolean isEmpty = list.isEmpty(); // 检查列表是否为空list.clear(); // 清空列表// 遍历列表for (String fruit : list) {System.out.println(fruit);}}
}

请注意,ArrayList 是一个泛型类,这意味着你可以指定列表可以包含的元素类型,例如 ArrayList<String>ArrayList<Integer>。这样做有助于提供编译时类型安全,并减少运行时类型错误的可能性。

在Java中,每种基本数据类型都有一个对应的包装类。这些包装类属于java.lang包,它们的作用是将基本数据类型转换为对象,这样可以使用对象的方法和属性。下面是基本数据类型及其对应的包装类:

  • byte:对应的包装类是 Byte
  • short:对应的包装类是 Short
  • int:对应的包装类是 Integer
  • long:对应的包装类是 Long
  • float:对应的包装类是 Float
  • double:对应的包装类是 Double
  • char:对应的包装类是 Character
  • boolean:对应的包装类是 Boolean

包装类提供了一些有用的方法,如将字符串转换为相应的基本类型值,或者将基本类型值转换为字符串,以及其他一些实用的静态方法。例如,Integer类提供了parseInt方法来将字符串转换为整数,Boolean类提供了parseBoolean来解析字符串为布尔值。此外,包装类还实现了比较对象等功能。

Java集合的练习

01-添加字符串并遍历

package com.mohuanan.exercise;import java.util.ArrayList;public class Demo01 {public static void main(String[] args) {//1. 创建ArrayList集合的对象ArrayList<String> list1 = new ArrayList<>();for (int i = 0; i < 3; i++) {list1.add("aaa");}System.out.println(list1);//2. 遍历输出System.out.println("[");for (int i = 0; i < list1.size(); i++) {//最后一个元素if(i==list1.size()-1){System.out.println(list1.get(i));}else{System.out.println(list1.get(i)+",");}}System.out.println("]");}
}

02-添加数字并遍历

package com.mohuanan.exercise;import java.util.ArrayList;public class Demo02 {public static void main(String[] args) {//1. 创建ArrayList对象ArrayList<Integer> list = new ArrayList<>();//jdk1.5以后Integer和int是可以相互转化的list.add(123);list.add(1);list.add(666);//2. 遍历for (int i = 0; i < list.size(); i++) {int number = list.get(i);System.out.print(number+"  ");}System.out.println();}
}

03-添加学生对象并遍历1

package com.mohuanan.student;public class Student {//学生属性private String name;private int age;//构造方法public Student(String name, int age) {this.name = name;this.age = age;}public Student() {}//方法public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}package com.mohuanan.student;import java.util.ArrayList;public class StudentTest {public static void main(String[] args) {//创建集合ArrayList<Student> list = new ArrayList<>();//创建Student对象Student s1 = new Student("莫华南",18);Student s2 = new Student("莫华棋",10);Student s3 = new Student("莫才兴",40);//添加元素list.add(s1);list.add(s2);list.add(s3);//输出的是地址System.out.println(list);//遍历输出for (int i = 0; i < list.size(); i++) {Student s = list.get(i);System.out.println(s.getName()+","+s.getAge());System.out.println(list.get(i).getName()+"  "+list.get(i).getAge());}}
}

04-添加学生对象并遍历2

package com.mohuanan.student;import java.util.ArrayList;
import java.util.Scanner;public class StudentTest {public static void main(String[] args) {//创建集合ArrayList<Student> list = new ArrayList<>();//创建Student对象Scanner sc = new Scanner(System.in);//注意这里 要new一个空间出来//Student stu = new Student();  ****for (int i = 0; i < 3; i++) {Student stu = new Student();  //所以要把stu这句话写在这里  表示创建三个名字相同 的stu对象System.out.println("请分别输入第"+(i+1)+"个人的姓名和年龄(用空格隔开)");//stu = new Student(sc.next(),sc.nextInt());//或者String name = sc.next();int age = sc.nextInt();//赋值给Student对象的属性 (用set方法)stu.setName(name);stu.setAge(age);//添加元素//输出的结果/*sdf,100sdf  100sdf,100sdf  100sdf,100sdf  100*///如果使用第一种方法 集合里面存储的是**三个**(相同的)**地址**list.add(stu);}//输出的是地址System.out.println(list);//遍历输出for (int i = 0; i < list.size(); i++) {Student s = list.get(i);System.out.println(s.getName()+","+s.getAge());System.out.println(list.get(i).getName()+"  "+list.get(i).getAge());}}
}

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

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

相关文章

文件名目录名或卷标语法不正确:数据恢复策略与预防措施

一、文件名目录名或卷标语法不正确的现象 在日常使用电脑或移动设备时&#xff0c;我们经常会遇到“文件名目录名或卷标语法不正确”的错误提示。这种错误通常发生在尝试访问、修改或删除文件、目录或卷标时&#xff0c;系统会提示无法完成操作&#xff0c;因为文件名、目录名…

C++格式化输入和输出

格式化输入与输出 除了条件状态外&#xff0c;每个iostream对象还维护一个格式状态来控制IO如何格式化的细节。 格式状态控制格式化的某些方面&#xff0c;如整型值是几进制、浮点值的精度、一个输出元素的宽度等。 标准库定义了一组操纵符来修改流的格式状态。 一个操纵符…

电商系列之商详

> 插&#xff1a;AI时代&#xff0c;程序员或多或少要了解些人工智能&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家…

java解数独(力扣Leetcode37)

数独问题 力扣原题链接 问题描述 数独的解法需遵循如下规则&#xff1a; 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 数独部分空格内已填入了数字&#xff0c;空白格用.表示。 示例 示例&…

微服务监控:确保分布式系统的可观察性与稳定性

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! 目录 一、前言二、微服务监控的重要性三、关键监控指标四、常用监控工具五、最佳实践六、结论 一、前言 在当前的软件开发领域&a…

const在指针中的作用以及*p在各种写法中分别代表什么含义

const在指针中起固定的作用&#xff0c;在不同的写法中其效果也有所区别&#xff0c;具体如下&#xff1a; 1、int* const p固定的是指针p指向的地址。 2、int const *p固定的是指针p指向地址中储存的内容。 例&#xff1a; 以上操作在编译器中执行不了&#xff0c;会报错。…

项目中预览图片时,添加水印,浏览器禁止右键功能、前端禁止直接获取图片地址。(Vue3、TS、canvas)

在src/utils文件夹下新建watermark.ts&#xff0c;写入以下代码块&#xff0c;生成水印文件 // 导出函数 getWatermark&#xff0c;它返回一个对象&#xff0c;其中包含一个名为 watermark 的方法。 export const getWatermark () > {const setWatermark (str: any) >…

Java基础知识总结(29)

Java虚拟机 运行时数据区 程序计数器 方法区&#xff1a;Java 8以后没有方法区&#xff0c;改为了元空间&#xff08;MetaSpace&#xff09; 虚拟机栈 堆 本地方法栈 程序计数器 它可以看作是当前线程所执行的字节码的行号指示器。在Java虚拟机的概念模型里&#xff0c…

flutter生成二维码并截图保存到图库

引入库&#xff1a;flutter_screenutil、image_gallery_saver、qr_flutter弹窗布局 import dart:async; import dart:typed_data; import package/generated/l10n.dart; import package:jade/configs/PathConfig.dart; import package:jade/utils/ImageWaterMarkUtil.dart; im…

瑞吉外卖实战学习--8、人员禁用和启用

前言 1、通过前端页面查看接口 会发现请求方式是put 请求接口是employee 2、检查页面传值 根据浏览器的请求可以看到传值为id和status 2、写put请求&#xff0c;添加修改时间和修改人的id然后传回给后台 /*** 启用和禁用员工账号* param request* param employee* return…

【Consul】Linux安装Consul保姆级教程

【Consul】Linux安装Consul保姆级教程 大家好 我是寸铁&#x1f44a; 总结了一篇【Consul】Linux安装Consul保姆级教程✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 前言 今天要把编写的go程序放到linux上进行测试Consul服务注册与发现&#xff0c;那怎么样才能实现这一过程&am…

25Ramdisk 启动模式简介

Ramdisk 启动模式简介 ramdisk是一种虚拟磁盘技术,我们的PE系统几乎都是使用ramdisk方式从计算机启动的.那么,ramdisk有哪些特点呢? Ramdisk 将内存虚拟为一个磁盘 Ramdisk技术会将你的一部分内存虚拟成一块磁盘分区.使用U盘启动pe系统时,打开pe系统里的文件资源管理器,你会看…

CKS之安全沙箱运行容器:gVisor

目录 一、gVisor介绍 二、gVisor架构 三、gVisor使用前置条件 四、Docker中使用gVisor 五、containerd中使用gVisor 六、Kubernetes结合gVisor使用 一、gVisor介绍 gVisor是Google开源的一种容器沙箱技术&#xff0c;其设计初衷是在提供较高安全性的同时&#xff0c;尽量…

Stable Diffusion 推荐硬件配置和本地化布署

Stable Diffusion简介 Stable Diffusion是由Stability AI开发的一种强大的文本到图像(Text-to-Image)生成模型,它能够根据用户提供的文本描述,生成与之相关的高质量、高分辨率图像。下面我从原理、特点、应用三个方面对Stable Diffusion作简要介绍: 1、原理:Stable Diffusion…

从输入url到页面展示的过程

唠唠叨&#xff1a;我不想误人子弟&#xff0c;我这篇算是搬运工&#xff0c;加上自己的理解做点总结&#xff0c;所以还请大家科学上网去看这篇&#xff1a;https://aws.amazon.com/cn/blogs/mobile/what-happens-when-you-type-a-url-into-your-browser/ 是这六个步骤&#…

杰发科技——Jlink插件使用

0. 简介 杰发自带的烧录工具是ATCLink&#xff0c;基于DapLink适配。个人不太喜欢ATCLink&#xff0c;推荐使用Jlink&#xff0c;毕竟自己买&#xff0c;不用问原厂要&#xff0c;而且带Jlink&#xff0c;至少5Mhz以上。 V9烧录器使用7.50以下版本驱动。 V11烧录器可以使用7…

热烈祝贺阿里云PolarDB登顶2024最新一期中国数据库流行榜

热烈祝贺阿里云PolarDB登顶2024最新一期中国数据库流行榜 墨天轮墨天轮国产数据库流行度排行PolarDB首度夺魁关于话题的讨论数据库流行度排行榜会影响你的数据库选型吗&#xff1f;对于 PolarDB 的本次登顶&#xff0c;你认为关键因素是什么&#xff1f;PolarDB“三层分离”新版…

【Review】小米汽车发布会

动力方面 顶配双电机四驱&#xff0c;小米超级电机21000转&#xff0c;最大马力673ps&#xff0c;峰值功率495kW&#xff0c;峰值扭矩838N.m。风阻系数最低0.195&#xff0c;零百加速最快2.78秒&#xff0c;时速最高265km/h。 底盘方面 前双叉臂&#xff0c;后无五连杆&#xf…

springcloud第4季 远程调用openfegin的介绍4

一 openfegin的介绍 1.1 openfegin的介绍 openfegin是一个声明式的web客户端&#xff1b;只需要创建一个rest接口并在该接口上添加注解FeginClient即可。openfeign基本上就是当前微服务之间调用的事实标准。 openfeign同时还集成了sprigcloud loadbalance。

01-XML-01认识XML

XML 被设计出来用于数据的记录和传递&#xff0c;经常被作用为配置文件 什么是XML 可扩展标记语言&#xff08;Extensible Markup Language&#xff09;,没有固定的标签&#xff0c;所有的标签都可以自定义。使用简单的标记来描述数据通常&#xff0c;xml被用于信息的记录和传…