程序输入输出与图片要求一致
程序输入输出与图片要求一致
程序输入输出与图片要求一致
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(); } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度