我希望add()方法做的psudeo代码。几乎提示用户键入数字。一旦他们输入一个数字,该数字将被添加到数组[0],其他每个值将被推高一个。但是阵列只有20.length。所以每个数组[20]都被删除了。 (加入循环,所以他们仍然被问到)。请帮我制作这个add方法,或者给我看一个执行此操作的java方法。 (不使用.list方法)。提前致谢。
public static void main(String[] args) {
int[] array = new int[1];
Scanner sc = new Scanner(System.in);
int num;
num = sc.nextInt();
add(num);
for(int i = 0; i < array.length; i++) {
println(array[i]);
}
}
public void add(int value) {
array[0] = value;
for(int i = 0; i < array.length; i++) {
if(array[i + 1] == already has value) {
// then shift numbers one to the right;
} else if(array.length > 20) {
//then delete array[19];
}
}
}
答案 0 :(得分:1)
您希望在添加值之前将整个列表向左移动。考虑这个算法: 1.从列表的倒数第二个元素开始,向右移动,覆盖最后一个元素存在的元素。 2.对所有值到第一个值执行此操作。 3.将array [0]设置为值
你已经完成了。
答案 1 :(得分:1)
数组是&#34;连续的内存块&#34;,所以为了在这些块的开头添加一个值,你必须先将其余的值移到相应的块上。
-(void)handleTap:(UITapGestureRecognizer *) tapper {
CGPoint touchPoint = [tapper locationInView:tapper.view];
if ([self.imageView.shape containsPoint:touchPoint]) {
NSLog(@"touched");
// do what you want with the touch here
}
}
答案 2 :(得分:0)
您可以在评论中说明 MadProgrammer ,或者更好地使用ArrayList
:
将指定元素插入此列表中的指定位置。将当前位置的元素(如果有)和右侧的任何后续元素移位(将其添加到索引中)。
示例(根据您的需要更改):
List<Integer> list = new ArrayList<Integer>(20);
public void add(int value) {
list.add(0, value);
for(int i = 0; i < array.length; i++) {
list.add(index, value); // this will automatically shift element right
if(list.size > 20) {
list.remove(20);
}
}
}
答案 3 :(得分:0)
您不希望使用ArrayList的任何原因?如果不是,这可能不是编程任务:)