此子类应该能够让用户选择一个特定的员工ID,在命令行中键入它,然后选择将其添加到数组列表中,从数组列表中删除它,或者只是请求查看有关该数据的更多信息。特定员工ID。我已经尝试了很多没有运气的东西。
/*Q37-WAP to print prime numbers in a range*/
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
int a,b,c,i,j;
cout<<"Enter the smallest number:";
cin>>a;
cout<<"\nEnter the biggest number:";
cin>>b;
for(i=a;i<=b;i++)
{
for(int j=2;j<=i/2;j++)
{
if(i%j==0);
{
break;
}
else
{
cout<<i<<"\n";
}
}
}
getch();
}
答案 0 :(得分:1)
数组是固定长度的数据结构。它们就像一座多层建筑。你不能从建筑物中间取出地板并期望它能够站立。
ArrayList(正如其他人所指出的那样)是动态结构,很像火车。您可以根据需要取出隔间,您可以重新配置它。
我实际上会建议 NOT 使用List,而是将ID映射到员工记录的Map。我们假设您在列表中有以下员工 -
如果删除“Bob”,John和Ruth的ID将会改变。不是一个好习惯。如果您使用地图,则每个人都可以保留其分配的ID,并且您只需通过递增键(或ID)来添加到地图中。
希望这会有所帮助。
答案 1 :(得分:0)
为了能够动态添加或删除数组,您应该使用列表或 ArrayList 。典型的数组在运行时不提供删除或添加,因为它们是固定大小的,如果你想通过处理索引或其他技巧来控制过程,你可能最终会陷入一个混乱且难以维护的代码。 另一方面,java中的列表是动态调整大小的,并提供 add(), remove(), get()和其他方便的方法,在我看来最适合你。
答案 2 :(得分:0)
您应该使用ArrayList来动态添加和删除数组中的条目。
通过执行以下操作使您的theEmployee数组成为ArrayList:
ArrayList<Employee> theEmployee = new ArrayList<Employee>();
您可以执行以下操作添加和删除:
public boolean addEmployeeID(Employee employeeAdd){
return theEmployee.add(employeeAdd);
}
public Employee deleteEmployeeID(int employeeDelete){
return theEmployee.remove(employeeDelete)
}
我将addEmployeeID的返回类型更改为boolean,因为当您添加对象时,ArrayList会返回一个布尔值。
对于remove,int employeeDelete将是数组中对象的索引。删除对象时,所有剩余的对象都会向左移动。因此,如果你有一个数组[1,2,3]并删除2,它将变为[1,3]。索引被移动。
你也可以删除一个对象,这样就可以了:
public boolean deleteEmployeeID(Employee employeeDelete){
return theEmployee.remove(employeeDelete)
}
其中employeeDelete是一个Employee,函数返回一个布尔值。