java中如何写一个可以任意在下面的集合中添加图书删除图书的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何写一个可以任意在下面的集合中添加图书删除图书的方法相关的知识,希望对你有一定的参考价值。

package cn.itcast.gz.bms;

import java.util.ArrayList;

public class Books
static ArrayList<Book> books=new ArrayList<Book>();
static
books.add(new Book("第一本书", "一号", "一号出版社", 75, "1123","2010-10-1"));
books.add(new Book("第二本书", "二号", "二号出版社", 56, "3124","2010-10-2"));
books.add(new Book("第三本书", "三号", "三号出版社", 77, "6125","2010-10-3"));
books.add(new Book("第四本书", "四号", "四号出版社", 38, "7126", "2000-10-4"));
books.add(new Book("第五本书", "五号", "五号出版社", 99, "8127", "2010-10-5"));
books.add(new Book("第六本书", "六号", "六号出版社", 100, "2128","1999-10-6"));


由于ArrayList是按照保存的顺序排序的 所以删除就是删除最后一个


代码如下:

private final static String[] chineseNumber = "一", "二", "三", "四", "五", "六", "七", "八", "九", "十";
private final static String[] chineseBits = "十", "百", "千", "万";

public static addBook(String bookName, int cost, String id, String date) 
    books.add(new Book("第" + toChineseNumber(books.length) + "本书", "第" + toChineseNumber(books.length) + "号出版社" ), cost, id, date);


public static deleteBook() 
    books.remove(books.length - 1);


private static toChineseNumber(int source) 
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < source.length(); i++) 
        int n = Integer.valueOf(source.charAt(i));
        String chinese = chineseNumber[n];
        String bits = chineseBits[source.length() - i - 1];
        if(0 == n) 
            sb.append(chinese);
         else 
            sb.append(chinese + bits);

    

参考技术A 第一种
static ArrayList<Book> books=new ArrayList<Book>();
public static void add(String s1,String s2,String s3,String s4,String s5,String s6)
books.add(new Book(s1, s2,s3,s4,s5,s6));

第二种
static ArrayList<Book> books=new ArrayList<Book>();
public static void add(Book b)
books.add(b);
参考技术B package cn.yw.exception;

import java.util.ArrayList;
import java.util.List;

/**
* 测试一个类可以任意添加和删除
* 1.
* 此demo并不能保证任意删除List集合中的数据因为List集合并不具备这样的条件
* 你要删除就必须要有前提条件,比如:知道某本书在集合中的位置、或者知道这本书中其中一个属性的确切值。等。
* 2.
* 但是你这个如果想要做到相对任意的话,就是使用Map和HashMap,因为map本身可以定位的根据key开找value这样
* 你局可以实现相对任意的添加和删除。但是map遍历的时候没有List方便。
* @author tony
*
*/
public class Books
private List<Books> books = new ArrayList<Books>();
/**
* 添加书籍的方法
* @param book
*/
public void addBook(Books book)
if(books != null)
books.add(book);


/**
* 根据图书对象删除
* @param book
*/
public void delBook(Books book)
books.remove(book);

/**
* 根据图书所在集合的位置进行删除
* @param position
*/
public void delBook(int position)
books.remove(position);



希望这个小demo能够提供给你帮助。
参考技术C 如果使用list来存储数目的话,那么要做到你的需求性能上会比较差,如果使用map来存储的话就会好很多了,使用数目编码来作为主键,然后根据数目编码来删除文件就行了。 参考技术D package cn.itcast.gz.bms;

import java.util.ArrayList;

public class Books
static ArrayList<Book> books=new ArrayList<Book>();
static void add(String ...args)
books.add(new Book(args[0],args[1],args[2],args[3],args[4],args[5]));

static void delete(int index)
books.remove(index);

如何在下面的节点 js socket io 代码中添加 cors

【中文标题】如何在下面的节点 js socket io 代码中添加 cors【英文标题】:how to add cors in the below node js socket io code 【发布时间】:2021-10-16 09:58:46 【问题描述】:

我正在尝试从客户端添加 cors 来源,因为它阻止了我的请求,我尝试执行以下命令,但它显示它不是一个函数,你能建议一种将跨来源策略添加到我的方法吗?代码

const axios = require('axios');
const express = require('express');
const http = require('http');
const app = express();
const server = http.createServer(app);
const socket = require('socket.io');
const io = socket(server)(8000, 
cors: 
    origin: ['http://localhost:3000'],
,
);

.
.
.
.
.

server.listen(8000, () => console.log('server is running on port 8000'));

【问题讨论】:

【参考方案1】:

你应该这样做:

const io = require("socket.io")(httpServer, 
  cors: 
    origin: "https://example.com",
    methods: ["GET", "POST"],
  
);

您不需要传递端口,而是提供httpserver。有关更多详细信息,请查看Socket.io 文档。

【讨论】:

以上是关于java中如何写一个可以任意在下面的集合中添加图书删除图书的方法的主要内容,如果未能解决你的问题,请参考以下文章

java集合类

java中如何把集合中的内容写到.txt文件中

如何在下面顶部的集合视图中为部分添加标题

JPA一对多映射

Java中删除文本文件中特定行的内容

Java之------集合