基于数组的一个简单增删改查

简介: 基于数组的一个简单增删改查

1、实现功能:

  • 基于数组实现,数组长度由用户输入,数组会进行动态扩充
  • 扩充原理:扩充长度为原数组长度的2倍
  • 可进行添加、修改、删除、查询操作。

2、代码实现

2.1、Chicken.java

public class Chicken {
    private int id;
    private String name;
    private int age;
    public Chicken() {
    }
    public Chicken(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }
    // get,set
}

2.2、ChickenManager.java

public class ChickenManager {
    private static int count = 0;//用来判断数组中有几个对象
    private Chicken[] chickens; // 数组对象
    // 如果用户输入小于0,则默认数组长度为5
    public ChickenManager(int size) {
        if (size > 0) {
            chickens = new Chicken[size];
        } else {
            chickens = new Chicken[5];
        }
    }
    /**
     * 获取数组的长度
     */
    public int getLength() {
        return chickens.length;
    }
  // 添加方法
    public void add(Chicken... chicken) {
        for (Chicken c : chicken
        ) {
            if (count >= chickens.length) {
                // 需要扩充数组(扩充一半 *3/2+1,扩充一倍*2)
                //  chickens = Arrays.copyOf(chickens,chickens.length*2);
                Chicken[] chickens1 = new Chicken[chickens.length * 2];
                System.arraycopy(chickens, 0, chickens1, 0, chickens.length);
                chickens = chickens1;
            }
            chickens[count] = c;
            count++;
        }
    }
  // 删除方法
    public void delete(int id) {
        for (int i = 0; i < count; i++) {
            if (chickens[i].getId() == id) {
                // 删除后,后面所有元素需要向前移动
                if (count - 1 - i >= 0) {
                    System.arraycopy(chickens, i + 1, chickens, i, count - 1 - i);
                }
                chickens[count - 1] = null;
                count--;
                break;
            }
        }
    }
    // 修改
    public void update(Chicken chicken) {
        Chicken chicken1 = selectById(chicken.getId());
        if (chicken1 != null) {
            chicken1.setAge(chicken.getAge());
            chicken1.setName(chicken.getName());
        }
    }
  // 查询
    public void select() {
        System.out.println(Arrays.toString(chickens));
    }
  // 根据id查询
    public Chicken selectById(int id) {
        for (int i = 0; i < count; i++) {
            if (chickens[i].getId() == id) {
                return chickens[i];
            }
        }
        return null;
    }
}

3、测试

public class Test8 {
    public static void main(String[] args) {
        // 默认数组长度为1
        ChickenManager chickenManager = new ChickenManager(1);
        // 添加,数组会动态扩充
        chickenManager.add(new Chicken(1, "花花", 12), new Chicken(2, "詹三", 23), new Chicken(3, "嘿嘿", 12), new Chicken(4, "丽丽", 32), new Chicken(5, "杨洋", 23));
        // 增删改查操作
    }
}


目录
相关文章
|
1月前
|
前端开发 Java 数据库连接
javamvc配置,增删改查,文件上传下载。
【10月更文挑战第4天】javamvc配置,增删改查,文件上传下载。
37 1
|
1月前
|
存储 NoSQL API
使用Py2neo进行Neo4j图数据库的增删改查操作
使用Py2neo进行Neo4j图数据库的增删改查操作
60 5
|
1月前
|
数据可视化 API PHP
低代码开发工具-学生管理系统-老师管理增删改查实现
低代码开发工具-学生管理系统-老师管理增删改查实现
32 5
|
2月前
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
27天前
|
JavaScript 前端开发 测试技术
[新手入门]todolist增删改查:vue3+ts版本!
【10月更文挑战第15天】[新手入门]todolist增删改查:vue3+ts版本!
|
2月前
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
|
1月前
|
Java API 数据库
Data jpa 增删改查的方法分别有哪些
Data jpa 增删改查的方法分别有哪些
|
3月前
|
SQL 数据库连接 API
ThinkPHP6实现增删改查接口
ThinkPHP6实现增删改查接口
47 1
|
3月前
|
XML 数据库 数据格式
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
这篇文章是Spring5框架的实战教程的终结篇,介绍了如何使用注解而非XML配置文件来实现JdbcTemplate的数据库操作,包括增删改查和批量操作,通过创建配置类来注入数据库连接池和JdbcTemplate对象,并展示了完全注解开发形式的项目结构和代码实现。
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
|
3月前
|
SQL XML Java
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
这篇文章是Spring5框架的实战教程,详细讲解了如何使用JdbcTemplate进行数据库的增删改查操作,包括在项目中引入依赖、配置数据库连接池、创建实体类、定义DAO接口及其实现,并提供了具体的代码示例和测试结果,最后还提供了完整的XML配置文件和测试代码。
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】