首页 > 其他分享 >List实现类----ArrayList的使用

List实现类----ArrayList的使用

时间:2023-02-18 17:24:37浏览次数:44  
标签:name ArrayList List System ---- age Student println arrayList

import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;

public class Demo01 {
public static void main(String[] args) {
//ArrayList的使用
//存储结构:数组,查询快,增删慢

/*
ArrayList源码分析
DEFAULT_CAPACITY=10 默认容量
注意:如果没有向集合中添加任何元素时,容量为0,添加一个元素后,容量为10;容量超过10后,容量会扩容,每次扩容大小时原来的1.5倍
elemenData 存放元素的数组
size 实际的元素个数
add(); 添加元素
*/

//创建集合
ArrayList arrayList = new ArrayList<>();

//1.添加元素
Student s1 = new Student("张三", 16);
Student s2 = new Student("李四", 16);
Student s3 = new Student("王五", 16);
arrayList.add(s1);
arrayList.add(s2);
arrayList.add(s3);
System.out.println("元素个数:"+arrayList.size());//元素个数:3
System.out.println(arrayList);//[Student{name='张三', age=16}, Student{name='李四', age=16}, Student{name='王五', age=16}]

//2.删除元素
//arrayList.remove(0);
//arrayList.remove(s1);
arrayList.remove(new Student("张三", 16));
System.out.println("元素个数:"+arrayList.size());//元素个数:2
System.out.println(arrayList);//[Student{name='李四', age=16}, Student{name='王五', age=16}]

//3.遍历元素
//1.使用迭代器
Iterator iterator = arrayList.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}

//2.列表迭代器
ListIterator listIterator = arrayList.listIterator();
//从前往后
while (listIterator.hasNext()){
System.out.println(listIterator.next());
}
//从后往前
while (listIterator.hasPrevious()){
System.out.println(listIterator.previous());
}

//4.判断
System.out.println(arrayList.contains(new Student("彭于晏",24)));//false
System.out.println(arrayList.contains(new Student("李四",16)));//true
System.out.println(arrayList.isEmpty());//false

//5.查找
System.out.println(arrayList.indexOf(s3));//1
}
}


public class Student {
private String name;
private int age;

public Student() {

}

public Student(String name, int age) {
this.name = name;
this.age = age;
}

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;
}

@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}

@Override
public boolean equals(Object obj) {
//1.判断是否为空
if(obj==null){
return false;
}
//2.判断是否为同一个对象
if(obj==this){
return true;
}
//判断是否可转为Student类型
if(obj instanceof Student){
Student s=(Student) obj;//强转
if(this.name.equals(s.getName())&&this.age==s.getAge()){
return true;
}
}
return false;
}
}


标签:name,ArrayList,List,System,----,age,Student,println,arrayList
From: https://www.cnblogs.com/123456dh/p/17133074.html

相关文章

  • 电学基础知识01
    一.电路的基本组成1,电路:电路是电流的流通路径,它是由一些电气设备和元器件按一定方式连接而成的.复杂的电路呈网状,又称网络.电路和网络这两个术语是通用的.2,电路的......
  • WinForm
    事件:发生一件事情注册事件:给按钮注册一个点击事件触发事件:当你点击按钮的时候我就会执行 ......
  • 2023年软考数据库系统工程师视频教程
    很多考生准备参加2023年软考数据库系统工程师考试,为帮助考生顺利通过考试,课课家软考学院为考生推荐数据库系统工程师学习视频、串讲视频、真题讲解视频等内容,帮助考生......
  • VUE计算属性/监听属性
    计算属性关键词computed:在该属性中的函数才是计算属性函数#必须是写在computed:属性中的函数才是计算属性函数<inputtype="text"v-model="name">----{{new......
  • Linux操作系统介绍
    一、概念1、操作系统管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。用户在操作系统(应用程序)上操作计算机硬件2、常......
  • 错误:[ERROR] 不再支持源选项 5。请使用 6 或更高版本。 [ERROR] 不再支持目标选项 1.5
    解决方案pom.xml文件中增加maven编译的java.versionjdk版本设置,以及maven.compiler.source 资源编译jdk版本设置和maven.compiler.target 资源构建jdk版本设置For JA......
  • 代码随想录算法训练营Day18 二叉树
    代码随想录算法训练营代码随想录算法训练营Day18二叉树|513.找树左下角的值112.路径总和113.路径总和ii106.从中序与后序遍历序列构造二叉树105.从前序与中序遍历......
  • 读架构漫谈
     这一周,通过通读王概凯的架构漫谈,对软件架构这一感念有了新的理解,同时对于软件架构师的工作内容也有了一些了解。  架构,这一概念诞生于建筑学,在人们建造的大楼越来越......
  • 为 RabbitMQ 服务器启用 SSL/TLS
    为RabbitMQ服务器启用SSL/TLS目录为RabbitMQ服务器启用SSL/TLS为客户端和服务器生成自签名证书在RabbitMQ服务器中启用TLS/SSL支持使用RabbitMQAssistant连......
  • 车辆管理系统
    车辆管理系统题目1基本信息:车型(CarModel),车厂(CarFactory),经销商(Distributor)三个表,一个车厂可以生产多种车型,一个经销商可以出售多种车型,一个车型可以有多个经销商出......