m0_65990300 2023-03-29 13:26 采纳率: 66.7%
浏览 107
已结题

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

img

img

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

  • 写回答

4条回答 默认 最新

  • 凯撒,别走 2023-03-30 14:38
    关注

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

    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();
            }
        }
    
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月8日
  • 已采纳回答 3月31日
  • 创建了问题 3月29日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度