Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java列表处理代码完全丢失_Java_Arrays_List_Shift - Fatal编程技术网

java列表处理代码完全丢失

java列表处理代码完全丢失,java,arrays,list,shift,Java,Arrays,List,Shift,好吧,这可能是一个非常简单的问题,但老实说,我对编码还不熟悉,我在这里遇到了困难。我需要在数组中插入一个值,将数据向右移动,并更新数组的大小。教授为我们提供了构建代码的注释,我已经掌握了大部分内容,但这最后一部分真让我受不了。有人能帮忙吗?以下是代码(相关部分在//插入值和移位数据…等下): 公共类列表{ //声明变量 私有整数大小=0; 私有int maxSize=100; 私有int[]数据; 扫描仪键盘=新扫描仪(System.in); //建设者 公开名单(){ 数据=新整数[maxSi

好吧,这可能是一个非常简单的问题,但老实说,我对编码还不熟悉,我在这里遇到了困难。我需要在数组中插入一个值,将数据向右移动,并更新数组的大小。教授为我们提供了构建代码的注释,我已经掌握了大部分内容,但这最后一部分真让我受不了。有人能帮忙吗?以下是代码(相关部分在//插入值和移位数据…等下):

公共类列表{
//声明变量
私有整数大小=0;
私有int maxSize=100;
私有int[]数据;
扫描仪键盘=新扫描仪(System.in);
//建设者
公开名单(){
数据=新整数[maxSize];
}
公共列表(int-maxSize){
this.maxSize=maxSize;
数据=新整数[maxSize];
}
//方法
//向数组中添加值并更新大小
公共布尔加法(int值){
如果(大小==最大大小){
System.out.println(“列表已满,无法添加值”);
返回false;
}
数据[大小]=值;
大小++;
返回true;
}
//将多个值添加到从键盘获取的列表中
公共void addValues(){
//声明局部变量
整数计数=0;
System.out.println(“输入由空格分隔的多个整数”);
字符串行=keyboard.nextLine();
扫描仪扫描线=新扫描仪(线);
试一试{
while(scanLine.hasNext()){
数据[大小]=扫描线.nextInt();
计数++;
大小++;
}
}捕获(阵列索引边界外异常aiobe){
System.out.println(“列表满之前只能添加“+count+”值”);
返回;
}捕获(输入不匹配异常输入法){
System.out.println(“由于输入无效,只能添加“+count+”值”);
返回;
}
}
//这将打印列表中的所有元素
公开作废印刷品(){
System.out.println();
对于(int i=0;i大小| |大小==最大大小){
System.out.println(“无效索引或列表已满”);
返回false;
}
//将值和移位数据插入右侧并更新大小
返回true;
}
//此方法删除给定索引处的值,并根据需要移动数据
公共布尔removeAt(整型索引){
如果(索引>=0&&indexfor(int i=1;i//插入值并向右移动数据并更新大小

//我认为这个尺寸是全球宣布的,对吗

大小++

for(int i=size - 1; i < 0; i--) {
    data[i] = data[i - 1];
}
data[index] = value;
for(int i=size-1;i<0;i--){
数据[i]=数据[i-1];
}
数据[索引]=值;

如果你有一个最大尺寸,也会有一个尺寸检查思考下面的答案应该有帮助。因为已经有一个尺寸检查,不需要再次检查

public boolean insertAt(int index, int value) {
    // validate index value and insertability
  if (index < 0 || index > 5) {
    System.out.println("Invalid index or list is already full");
    return false;
  }
  // insert value and shift data to the right and update the size

  for(int i=index;i<size;i++) {
      data[++i] = data[i];
  }
  data[index] = value;

  return true;
}
public boolean insertAt(int索引,int值){
//验证索引值和可插入性
如果(指数<0 | |指数>5){
System.out.println(“无效索引或列表已满”);
返回false;
}
//将值和移位数据插入右侧并更新大小
for(int i=index;i
public boolean insertAt(int index,int value){
//验证索引值和可插入性
如果(索引<0 | |索引>大小| |大小==最大大小){
System.out.println(“无效索引或列表已满”);
返回false;
}
//将值和移位数据插入右侧并更新大小
对于(int i=size-1;i>index;i--)
数据[i+1]=数据[i];
数据[索引]=值
大小++;
返回true;
}

没有人会为您这样做,请让我们知道您尝试了什么,哪些不起作用。类有点不一致,当列表已满时,add不会添加新值。addValues不关心这一点。当调用insertAt且列表已满时,溢出会发生什么?最后一个元素被踢出?Generally最有帮助的是,如果你写下解决方案是什么(用文字、伪代码或诸如此类的东西)-不要试图从你将要编写的代码开始解决问题,然后你可以添加一些注释如何解决问题吗?我想你的教授希望你完成“insertAt”函数。这是我的代码
public boolean insertAt(int index, int value) {
        // validate index value and insertability
        if (index < 0 || index > size || size == maxSize) {
            System.out.println("Invalid index or list is already full");
            return false;
        }
        // insert value and shift data to the right and update the size
           for (int i=size - 1; i > index; i--)
           data[i+1] = data[i];
           data[index] = value
           size++;
        return true;
    }