用List实现增删改查_用list做增删改查_曦醉幽纷的博客-程序员秘密

技术标签: java  增删改查  List  

源代码演示:

import java.util.ArrayList;

import java.util.List;

import javax.swing.JOptionPane;

 

publicclass UserDAOImpl implements UserDAO {

    List<User> userList = new ArrayList<User>();

    @Override增加

    publicvoid addUser(User user) {

       userList.add(user);

    }

    @Override删除

    publicvoid deleteUserByid(String id) {

       // TODO Auto-generated method stub

       for (inti = 0,len = userList.size(); i < len; i++) {

           if(id.equals(userList.get(i).getId()))

          {

            intn = JOptionPane.showConfirmDialog(null, "是否删除","提示",JOptionPane.YES_NO_OPTION);

           if(n==0){

              userList.remove(userList.get(i));

           }

           if(n==1){

              return ;

           }

           break;

        }

           if(!id.equals(userList.get(i).getId())&&i==len-1){

              JOptionPane.showConfirmDialog(null, "未知用户","提示",

                     JOptionPane.CLOSED_OPTION);

           }

       }

    }

    @Override修改

    publicvoid reviseUser(User user) {

       for (inti = 0,len = userList.size(); i < len; i++) {

           if(user.getId().equals(userList.get(i).getId())){

              String inputName =JOptionPane.showInputDialog(null,"请输入修改后的用户名:\n");

              if(inputName == null)

              {

                  return;

                 

              }

              if(inputName.equals("")){

                  JOptionPane.showMessageDialog(null, "请输入修改后信息","提示",JOptionPane.ERROR_MESSAGE);

                  return ;

              }

              else{

                  user.setName(inputName);

                  userList.get(i).setName(user.getName());

                  break;

              }

           }

       }

    }

    @Override查所有的

    public List<User> getAllUsers() {

        

       returnuserList;

    }

    @Override查一个

    public User getUserById(String id) {   

       User user =null;

       for (inti = 0,len = userList.size(); i < len; i++) {

           if(id.equals(userList.get(i).getId())){

              user = userList.get(i);

           }

       }

       returnuser;

    }

    @Override根据关键词查

    public List<User> getAllUserByKeywords(Stringkeywords) {

       List<User> users = new ArrayList<User>();

       for (inti = 0,len = userList.size(); i < len; i++) {

           User user1 = userList.get(i);

           if(user1.getName().indexOf(keywords)>=0)

           {

              users.add(user1);

           }

       }

       returnusers;

    }

 

}

import java.util.ArrayList;

import java.util.List;

 

import javax.swing.JOptionPane;

 

publicclass UserDAOImpl implements UserDAO {

    List<User> userList = new ArrayList<User>();

    @Override增加

    publicvoid addUser(User user) {

       userList.add(user);

    }

    @Override删除

    publicvoid deleteUserByid(String id) {

       // TODO Auto-generated method stub

       for (inti = 0,len = userList.size(); i < len; i++) {

           if(id.equals(userList.get(i).getId()))

          {

            intn = JOptionPane.showConfirmDialog(null, "是否删除","提示",JOptionPane.YES_NO_OPTION);

           if(n==0){

              userList.remove(userList.get(i));

           }

           if(n==1){

              return ;

           }

           break;

        }

           if(!id.equals(userList.get(i).getId())&&i==len-1){

              JOptionPane.showConfirmDialog(null, "未知用户","提示",

                     JOptionPane.CLOSED_OPTION);

           }

       }

    }

    @Override修改

    publicvoid reviseUser(User user) {

       for (inti = 0,len = userList.size(); i < len; i++) {

           if(user.getId().equals(userList.get(i).getId())){

              String inputName =JOptionPane.showInputDialog(null,"请输入修改后的用户名:\n");

              if(inputName == null)

              {

                  return;

                 

              }

              if(inputName.equals("")){

                  JOptionPane.showMessageDialog(null, "请输入修改后信息","提示",JOptionPane.ERROR_MESSAGE);

                  return ;

              }

              else{

                  user.setName(inputName);

                  userList.get(i).setName(user.getName());

                  break;

              }

           }

       }

    }

    @Override查所有的

    public List<User> getAllUsers() {

        

       returnuserList;

    }

    @Override查一个

    public User getUserById(String id) {   

       User user =null;

       for (inti = 0,len = userList.size(); i < len; i++) {

           if(id.equals(userList.get(i).getId())){

              user = userList.get(i);

           }

       }

       returnuser;

    }

    @Override根据关键词查

    public List<User> getAllUserByKeywords(Stringkeywords) {

       List<User> users = new ArrayList<User>();

       for (inti = 0,len = userList.size(); i < len; i++) {

           User user1 = userList.get(i);

           if(user1.getName().indexOf(keywords)>=0)

           {

              users.add(user1);

           }

       }

       returnusers;

    }

 

}


PS:User是另一个类,需要自己写,就像下面的

public class User {
     private String id;
     private String name;
     
     public User(String id,String name) {
         this.id = id;
         this.name = name;
    }
     public String getId() {
        return id;
    }public String getName() {
        return name;
    }public void setId(String id) {
        this.id = id;
    }public void setName(String name) {
        this.name = name;
    }@Override
    public String toString() {
        return super.toString();
    }
}

UserDAO 是一个接口(是常量和公共的抽象方法组成)

public interface UserDAO {
    void addUser(User user);
    void deleteUserByid(String id);
    void reviseUser(User user);
    List<User> getAllUsers();
    User getUserById(String id);
    List<User> getAllUserByKeywords(String keywords);
    
}


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/SweetBallBall/article/details/73603347

智能推荐

gdb常用命令_weixin_34348805的博客-程序员秘密

1. 查看文件中某变量的值: file::variable function::variable 可以通过这种形式指定你所想查看的变量,是哪个文件中的或是哪个函数中的。例如,查看文件f2.c中的全局变量x的值: gdb) p 'f2.c'::x 查看数组的值 有时候,你需要查看一段连续的内存空间的值。比如数组的一段,或是...

labelme标注后如何生成数据集_labelme标注后的矢量数据_Season_Chu的博客-程序员秘密

安装labelme环境打开Anaconda Prompt, 直接输入pip install labelme即可安装由于课题研究主要针对髋骨附近的股骨进行标注,只需要一种标签即可:方法一1)直接在Anaconda Prompt中输入labelme即可;标注图片的两种方法2)点击OpenDir选择所要标注的图片目录,标签名自己随意起就好了;3)点击File-&gt;Change OutputDir来改变保存json文件的位置;4)标注完成后需要生成数据集,首先找到Anaconda环境下的l

多线程卖票实例_vc++ 多线程购票示例控制台_彼岸花_C的博客-程序员秘密

java多线程实现方式主要有两种:继承Thread类、实现Runnable接口;package com.test.thread;import java.util.List;public class salePicketThread extends Thread { private List&amp;lt;String&amp;gt; ps; public salePicketThread(Lis...

版本控制工具SVN使用详细解析_svn tc mc_有心好书的博客-程序员秘密

一.版本控制工具概述  svn是版本管理工具,主要帮助我们管理代码提交日志的。抛开系统来谈,svn分为服务端和客户端。就客户端而言,有很多第三方客户端,但是底层都是官方的命令行客户端。   在公司的开发中,我们一般只需要配置好客户端即可,根据公司给的用户名和密码连上公司的服务器,从服务器上check代码,通过客户端签入代码到服务器。   如果我们想把自己的电脑作为服务器,让自己的电脑承担着服务器

8通道汽车示波器模块(型号:PQ185)_虹科Pico汽车示波器的博客-程序员秘密

1、8通道汽车示波器8个通道 12位分辨率 20MHz带宽 256MS缓存 80MS/s采样率 最大电压输入达±50 V 完全支持PicoScope汽车软件和波形库 所有的过滤和触发 SuperSpeed USB3.02、4还是8通道的PicoScope?2和4通道的PicoScope 4225和4425是我们推荐大部分维修车间使用的产品。浮地设计、连接探测、200V输入,让它们非常耐用和易用。对于做培训、车辆设计和更复杂诊断的有经验的示波器用户,8通道的PicoSc.

react-native应用签名与打包apk(十五)_Museions的博客-程序员秘密

转载:将 React Native 应用签名打包成 APK注明:本文的react-native签名方案基于mac os,在windows下,java命令与生成签名文件的命令是一致的可以通用,生成的.keystore文件可以自定义,生成apk的方式因人而异,这个主要视.json配置文件而定。Android要求所有应用都有一个数字签名才会被允许安装在用户手机上,所以在把应用发布到类似Googl...

随便推点

SpringBoot+thymeleaf快速实现国际化语言切换_spring boot thymeleaf 多语言对应_我是张睿的博客-程序员秘密

在经济全球化的时代,我们的产品也要走向语言全球化,所以我们不得不考虑让一款产品支持多种语言。在SpringMVC中实现国际化的步骤一般分为以下几步:1)、编写国际化配置文件;2)、使用ResourceBundleMessageSource管理国际化资源文件;3)、在页面使用fmt:message取出国际化内容。SpringBoot已经自动帮助我...

算法导论——分治法、归并排序——伪代码和Java实现_归并排序伪代码_Addyz的博客-程序员秘密

第二章第三节:分治法我们首先先介绍分治法。分治法的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题,然后在合并这些子问题的解来解决原问题的解。&nbsp;&nbsp;&nbsp;&nbsp;还是拿扑克牌举例子,假设桌上有两堆牌面朝上的牌(牌面朝上:有值),每堆都已排序,最小的牌在顶上。我们希望把这两堆牌合并成单一的排好序的输出堆,牌面朝下地放在桌上。应该怎么做呢...

Winform/C#入门编程之第二部分常用控件(十四:数据控件DataGridView)_平底锅锅锅的博客-程序员秘密

简介:DataGridView 控件用于显示数据提供一个自定义的表。 DataGridView 类使用属性允许单元格、行、列和边框的自定义例如 DefaultCellStyle、 ColumnHeadersDefaultCellStyle、 CellBorderStyle和 GridColor。可以使用 DataGridView 控件显示数据有或没有基础数据源。 未指定数据源,可以创建使用...

一次OOM分析-ByteArrayOutPutStream#write引起_thewindkee的博客-程序员秘密

本文产生的原因上传一个大文件文件的时候报了OOM查看代码以前的上传代码中使用了URL url = new **URL**(urlStr);conn = (HttpURLConnection) url.openConnection();....省略out = conn.getOutputStream();conn.setRequestMethod("POST");conn.con...

[计算几何] (二维)两线段的交点坐标_求两线段的交点坐标_「已注销」的博客-程序员秘密

 给出点A1,A2,B1,B2的坐标, 分别构成线段A1A2, 线段B1B2, 求两线段的交点坐标 线段A1A2,B1B2如下图所示, 并建立辅助线(图片来源于&amp;lt;&amp;lt;挑战程序设计竞赛2&amp;gt;&amp;gt;)Step1: 先求出B1点到直线A1A2的距离d1, 和B2点到直线A1A2的距离d2  可根据矢量法求出(A1B1为向量, 其它一样)         Ste...

SpringBoot各种注解的作用汇总(学习笔记)_springboot handler注解作用_骑鱼~过海的博客-程序员秘密

SpringBoot各种注解的作用汇总(学习笔记)1. @SpringBootApplication申明让spring boot自动给程序进行必要的配置,这个配置等同于:@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三个配置。2. @ResponseBody表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,用于构建RESTful的api。在使用@RequestMapping后,返回值通常

推荐文章

热门文章

相关标签