java基础望梆梆 java基础望梆梆

img

img

程序输入输出与图片要求一致
程序输入输出与图片要求一致
程序输入输出与图片要求一致

第一题:用数组实现一个集合类
第二题:用上面题目中实现的集合类,完成要求的功能。

import java.util.Random;
import java.util.Scanner;

public class Application {

    public  static Random random  = new Random();

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        World MiddelEarth = new World("MiddelEarth");
        World MiddleAges = new World("MiddleAges");

        System.out.print("Enter the coordinates of the entity Frodo (x, y):");
        String next = sc.nextLine();
        String[] frodo = next.split(" ");
        MiddelEarth.addEntity(new Entity("Frodo", Integer.parseInt(frodo[0]), Integer.parseInt(frodo[1])));
        System.out.print("Enter the coordinates of the entity Gandalf (x, y):");
        String[] gandalf = sc.nextLine().split(" ");
        MiddelEarth.addEntity(new Entity("Gandalf", Integer.parseInt(gandalf[0]), Integer.parseInt(gandalf[1])));
        System.out.print("Enter the coordinates of the entity Bilbo (x, y):");
        String[] bilbo = sc.nextLine().split(" ");
        MiddelEarth.addEntity(new Entity("Bilbo", Integer.parseInt(bilbo[0]), Integer.parseInt(bilbo[1])));

        MiddelEarth.display();
        MiddleAges.display();

        System.out.print("Enter one entity name and move this entity to one random position:");
        String name = sc.nextLine();

        MiddelEarth.moveEntity(name,random.nextInt(100),random.nextInt(100));

        MiddelEarth.display();
        MiddleAges.display();

        System.out.println(name + " found, moved and deleted.");

        MiddleAges.addEntity(MiddelEarth.deleteEntity(MiddelEarth.findEntity(name)));

        MiddelEarth.display();
        MiddleAges.display();

    }


}


public class Entity {

    private String name;

    private int x;

    private int y;

    public Entity() {
    }

    public Entity(String name, int x, int y) {
        this.name = name;
        this.x = x;
        this.y = y;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }

    public void move(int x, int y) {
        setX(x);
        setY(y);
    }

    public void display(){
        System.out.println("#Entity name: " + getName() + ", the position is (" + getX() + "," + getY() + ")");

    }
}


public class MyArrayList<E> implements MyList<E> {

    private E[] data;
    private int size;

    public MyArrayList(int capacity) {
        data = (E[]) new Object[capacity];
        size = 0;
    }

    public MyArrayList() {
        this(10);
    }

    @Override
    public int size() {
        return size;
    }

    @Override
    public void add(E e) {
        addLast(e);
    }

    @Override
    public boolean isEmpty() {
        return size == 0;
    }

    public void addLast(E e) {
        addIndex(size, e);
    }

    public E removeFirst() {
        return remove(0);
    }

    public E removeLast() {
        return remove(size - 1);
    }

    @Override
    public void addIndex(int index, E e) {
        if (index < 0 || index > data.length - 1) {
            throw new IllegalArgumentException("index is invalidate");
        }
        if (size == data.length) {
            resize(data.length * 2);
        }
        for (int i = size - 1; i >= index; i--) {
            data[i + 1] = data[i];
        }
        data[index] = e;
        size++;
    }

    @Override
    public E get(int index) {
        if (index < 0 || index > data.length - 1) {
            throw new IllegalArgumentException("Index is invalidate");
        }
        return data[index];
    }

    public E getLast() {
        return get(size - 1);
    }

    public E getFirst() {
        return get(0);
    }

    @Override
    public E remove(int index) {
        if (index < 0 || index > size - 1) {
            throw new IllegalArgumentException("Index is invalidate");
        }
        E ret = data[index];
        for (int i = index; i < data.length - 1; i++) {
            data[i] = data[i + 1];
        }
        data[size] = null;
        size--;
        if (size == data.length / 2) {
            resize(data.length / 2);
        }
        return ret;
    }

    @Override
    public void update(int index, E e) {
        data[index] = e;
    }

    private void resize(int newCapacity) {
        E[] newData = (E[]) new Object[newCapacity];
        for (int i = 0; i < size; i++) {
            newData[i] = data[i];
        }
        data = newData;
    }
}


public interface MyList<E> {

    int size();

    void add(E e);

    void addIndex(int index, E e);

    E remove(int index);

    E get(int index);

    void update(int index, E e);

    boolean isEmpty();

}


public class World {

    private String name;

    private MyArrayList<Entity> list;

    public World() {
        list = new MyArrayList();
    }

    public World(String name) {
        this.name = name;
        list = new MyArrayList();
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void addEntity(Entity entity) {
        if (list.size() >= 10) {
            System.out.println("Middle Earth has reached the maximum capacity!");
        } else {
            list.add(entity);
        }
    }

    public Entity deleteEntity(int pos) {
        return list.remove(pos);
    }

    public int findEntity(String name) {
        int size = list.size();
        for (int i = 0; i < size; i++) {
            if (list.get(i).getName().equals(name)) {
                return i;
            }
        }
        return -1;
    }

    public void moveEntity(String name, int x, int y) {
        int pos = findEntity(name);
        if (pos != -1) {
            list.get(pos).move(x, y);
        } else {
            System.out.println("The entity is not exist");
        }
    }

    public void display() {
        System.out.println("#" + name);
        System.out.println("#The number of the entities:" + list.size());
        for (int i = 0; i < list.size(); i++) {
            list.get(i).display();
        }
    }

}


以下答案由GPT-3.5大模型与博主波罗歌共同编写:
Java程序中的输入和输出主要使用Java标准库中的输入输出类来完成,其中常用的类有Scanner和System.in类,以及PrintStream和System.out类。

其中,Scanner和System.in类用于读取控制台上的输入,PrintStream和System.out类用于向控制台输出内容。

示例如下:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        System.out.println("输入内容为:" + input);
    }
}

上述示例中,通过Scanner类读取控制台上输入的内容,然后通过System.out类向控制台输出。

对于图片的要求一致指的是,图片的读取和输出也要遵循一定的规范。一般来说,可以使用Java标准库中的ImageIO类来完成图片的读取和输出操作。

示例如下:

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class Main {
    public static void main(String[] args) {
        try {
            File input = new File("input_image.jpg");
            BufferedImage image = ImageIO.read(input);
            File output = new File("output_image.jpg");
            ImageIO.write(image, "jpg", output);
        } catch (IOException e) {
            System.out.println("图片读取或输出失败!");
        }
    }
}

上述示例中,通过ImageIO类读取输入的图片,然后通过ImageIO.write()方法向控制台输出。具体实现方式可以根据自己的需要进行调整。
如果我的回答解决了您的问题,请采纳!

该回答引用ChatGPT
根据题目描述,需要编写一个Java程序,实现以下功能:
1. 从控制台输入一个整数n,表示要输入n个整数。
2. 依次输入n个整数,并将它们存储在一个数组中。
3. 对数组进行排序,按照从小到大的顺序排列。
4. 输出排序后的数组,每个元素之间用一个空格隔开。
下面是代码实现:
java
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = scanner.nextInt();
}
Arrays.sort(nums);
for (int i = 0; i < n; i++) {
System.out.print(nums[i] + " ");
}
}
}

程序的思路如下:
1. 使用Scanner类从控制台输入一个整数n。
2. 创建一个长度为n的整型数组nums,用于存储输入的n个整数。
3. 使用for循环依次输入n个整数,并将它们存储在数组nums中。
4. 使用Arrays.sort()方法对数组nums进行排序。
5. 使用for循环输出排序后的数组nums,每个元素之间用一个空格隔开。
注意事项:
1. 输入的整数n和数组nums的长度要一致。
2. 输入的整数和数组元素要求为整型。
3. 输出的数组元素之间要用一个空格隔开。

img

img

img