Java集合详解

1. 集合基础

1.1 集合概述

1.2 ArrayList构造方法和添加方法

1.3 ArrayList集合常用方法


1. 集合基础

1.1 集合概述

集合类的特点:提供一种存储空间可变的存储横型,存储的数据容量可以发生改变

ArrayList

ArrayList< >:

可调整大小的数组实现
< >:是一种特殊的数据类型,泛型
在出现E的地方我们使用引用数据类型替换即可

例如: ArrayList<String>,ArrayList<Student>

1.2 ArrayList构造方法和添加方法

方法名说明
public ArrayList()创建一个空的集合对象
public boolean add(E e)将指定的元素追加到此集合的末尾
public void add(int index,E element)在此集合中的指定位置插入指定的元素

例如:

import java.util.ArrayList;public class ArrayListDemo01 {public static void main(String[] args) {//public ArrayLise();创建一个空的集合对象// ArrayList<String> list = new ArrayList<>(); //也是对的ArrayList<String> list = new ArrayList<String>();// public boolean add(E e) 将指定的元素追加到此集合的末尾// System.out.println(list.add("hello"));list.add("hello");list.add("world");list.add("java");// public void add(int index,E element) 在此集合中的指定位置插入指定的元素list.add(1, "javac");// list[hello, javac, world, java]list.add(3, "javaEE");// list[hello, javac, world, javaEE, java]//list.add(4, "javaSE");// 报错 IndexOutOfBoundsException// 输出集和System.out.println("list" + list);}
}

1.3 ArrayList集合常用方法

方法名说明
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()返回集合中的元素的个数

例如:


import java.util.ArrayList;public class ArrayListDemo02 {public static void main(String[] args) {// 创建集合ArrayList<String> list = new ArrayList<String>();// 添加元素list.add("hello");list.add("world");list.add("java");// public boolean remove(Object o) 删除指定的元素,返回删除是否成功// System.out.println(list.remove("world"));// true list[hello, java]// System.out.println(list.remove("world1"));//false list[hello, world,// java]// public E remove(int index) 删除指定索引处的元素,返回被删除的元素// System.out.println(list.remove(1));//world list[hello, java]// System.out.println(list.remove(3)); //IndexOutOfBoundsException// public E set(int index,E element) 修改指定索引处的元奏,返回被修改的元素// System.out.println(list.set(1, "koko")); //world list[hello, koko,// java]// System.out.println(list.set(3, "koko"));//IndexOutOfBoundsException// public E get(int index) 返回指定索引处的元素// System.out.println(list.get(0)); //hello list[hello, world, java]// System.out.println(list.get(3)); //IndexOutOfBoundsException// public int size() 返回集合中的元素的个数System.out.println(list.size()); // 3 list[hello, world, java]// 输出集合System.out.println("list" + list);}
}

例二:创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历该集合

import java.util.ArrayList;public class ArrayListDemo03 {public static void main(String[] args) {// 创建集合ArrayList<String> list = new ArrayList<String>();// 往集合中添加字符串对象list.add("林峰");list.add("石昊");list.add("萧炎");// 遍历// System.out.println(list.get(0));// System.out.println(list.get(1));// System.out.println(list.get(2));// for (int i = 0; i < 3; i++) {// System.out.println(list.get(i));// }// 获取集合长度// System.out.println(list.size());// 遍历集合通用格式for (int i = 0; i < list.size(); i++) {String c = list.get(i);System.out.println(c);}}
}

结果:



例三:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合

创建一个Student类:


public class Student {private String name;private int age;public Student() {}public Student (String name,int age){this.name=name;this.age=age;}public void setName(String name) {this.name = name;}public String getName() {return name;}public void setAge(int age) {this.age = age;}public int getAge() {return age;}
}

测试:


import java.util.ArrayList;public class ArrayListDemo01 {public static void main(String[] args) {// 创建集合ArrayList<Student> list = new ArrayList<Student>();// 创建学生对象Student s1 = new Student("张三", 30);Student s2 = new Student("李四", 40);Student s3 = new Student("王五", 50);// 添加学生对象到集合中list.add(s1);list.add(s2);list.add(s3);// 遍历集合for (int i = 0; i < list.size(); i++) {Student c = list.get(i);System.out.println(c.getName() + "," + c.getAge());}}
}

结果:

例四:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合学生的姓名和年龄来自于键盘录入

创建一个Student类:


public class Student {private String name;private String age;public Student() {}public Student(String name, String age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}}

测试:

import java.util.ArrayList;
import java.util.Scanner;public class ArrayListDemo01 {public static void main(String[] args) {// 创建集合对象ArrayList<Student> list = new ArrayList<Student>();adds(list);adds(list);adds(list);// 遍历集合for (int i = 0; i < list.size(); i++) {Student c = list.get(i);System.out.println(c.getName() + "," + c.getAge());}}public static void adds(ArrayList<Student> list) {// 键盘录入学生对象所需的数据Scanner s = new Scanner(System.in);System.out.println("请输入学生姓名:");String name = s.next();System.out.println("请输入学生年龄:");String age = s.next();// 创建学生对象,把键盘录入的数据赋值给学生对象的成员变量Student st = new Student();st.setName(name);st.setAge(age);// 往集合中添加学生对象list.add(st);}
}

结果:

 

 

 

 

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

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

相关文章

TextView 必填项pro版

优点 基本解决对齐方式,可以设置前缀隐藏和显示 /*** https://blog.csdn.net/u013982652/article/details/94404711* Android自定义TextView实现必填项前面的*号* 另一种实现方式(推荐使用这种,有非必填情况的话不会有对齐问题)* <p>* <cn.mvp.mlibs.weight.MiRequire…

【Fiddler】Fiddler实现mock测试(模拟接口数据)

软件接口测试过程中&#xff0c;经常会遇后端接口还没有开发完成&#xff0c;领导就让先介入测试&#xff0c;然后缩短项目时间&#xff0c;有的人肯定会懵&#xff0c;接口还没开发好&#xff0c;怎么介入测试&#xff0c;其实这就涉及到了我们要说的mock了。 一、mock原理 m…

CentOS 安装字体 微软雅黑

fc-list命令查看已经安装的字体 fc-list :langzh命令可以查看已安装的中文字体 找到windows系统里面的字体 上传到服务器 /usr/share/fonts/winFonts 下&#xff0c;winFonts目录是自己建立的&#xff0c;名称无要求 如果C:\Windows\Fonts下的字体没法直接传输将这个文件夹复…

Leetcode-每日一题【24.两两交换链表中的节点】

题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4]输出&#xff1a;[…

rust 引用怎么用

本来好好的引用&#xff0c;被 rust 玩坏了&#xff0c;搞得自己都不会使用引用了&#xff0c;我们还是从简单的例子入手&#xff0c;来探索使用引用可能遇到额问题。 下面的示例代码编译不通过&#xff0c;在 s1 赋值给变量 s2 的过程中&#xff0c;字符串 neojos 值的所有权…

dede tag彩色随机大小的样式修改方法

dede tag彩色随机大小的样式修改方法&#xff0c;打开include/common.func.php 在最下面添加以下代码&#xff1a; //TAG彩色 jinmengqiang.cn function getTagStyle() { $minFontSize8; //最小字体大小,可根据需要自行更改 $maxFontSize18; //最大字体大小,可根据需要自行更改…

Unity 上传文件到阿里云 对象存储OSS服务器

首先登录阿里云 免费试用–对象存储OSS --点击立即试用&#xff0c;可以有三个月的免费试用 创建Buket 新建AccessKey ,新建完成后&#xff0c;会有一个CSV文件&#xff0c;下载下来&#xff0c;里面有Key &#xff0c;代码中需要用到 下载SDK 双击打开 sln文件&#xff0…

STM32(HAL库)通过ADC读取MQ2数据

目录 1、简介 2、CubeMX初始化配置 2.1 基础配置 2.1.1 SYS配置 2.1.2 RCC配置 2.2 ADC外设配置 2.3 串口外设配置 2.4 项目生成 3、KEIL端程序整合 3.1 串口重映射 3.2 ADC数据采集 3.3 主函数代 3.4 效果展示 1、简介 本文通过STM32F103C8T6单片机通过HAL库方式对M…

解决Git fatal: refusing to merge unrelated histories报错

问题描述 当在远程建立了一个仓库&#xff0c;并且远程的仓库已经初始化了的情况&#xff0c;使用 git remote add origin gitgithub.com:xxx/xxx.git命令添加远程仓库后&#xff0c;执行git pull,然后提示如下&#xff1a; 大致意思就是需要关联我们的本地和远程分支。按照…

Nginx正向代理和反向代理详解

目录 一、什么是正向代理&#xff1f; 二、什么是反向代理&#xff1f; 三、正向代理和反向代理的作用 一、什么是正向代理&#xff1f; 正向代理&#xff0c;“它代理的是客户端”&#xff0c;是一个位于客户端和目标服务器之间的服务器&#xff0c;为了从目标服务器取得内…

给httprunnermanager接口自动化测试平台加点功能(七)

文章目录 一、背景1.1、用例列表test_list1.2、套件列表suite_list 二、实现2.1、用例edit页面2.2、套件edit页面 三、数据结构3.1、更新数据结构 四、知识扩展五、总结 一、背景 前面几章优化&#xff0c;从功能bug的优化、到列表的优化、还有字段的优化&#xff0c;暂时满足…

数据从发出到接收的细节介绍{封装与解封装}

系列文章目录 数通王国历险记&#xff08;5&#xff09; 目录 前言 一&#xff0c;数据封装的全过程 1.1&#xff0c;应用层的封装形式 1.2&#xff0c;传输层的封装形式 理解&#xff1a; 1.3&#xff0c;网络层的封装形式 理解&#xff1a; 1.4&#xff0c;数据链路层…