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_For Loop_If Statement_Methods - Fatal编程技术网

Java 数组方法问题

Java 数组方法问题,java,arrays,for-loop,if-statement,methods,Java,Arrays,For Loop,If Statement,Methods,我的java程序有问题。我是Java的新手,只是不知道它到底有什么问题。简而言之,我已经在main中声明了一个数组和一个变量,我已经创建了我的方法调用,并且希望我的数组和变量一起传递到我的方法中。然后,我希望该方法获取我的数组并计算变量“8”出现的次数,从数组中去掉8,并将一个新的较小数组返回到main。下面是我的代码。我觉得好像我只是错过了一个块代码有什么建议吗 public class Harrison7b { public static void main(String [] arg

我的java程序有问题。我是Java的新手,只是不知道它到底有什么问题。简而言之,我已经在main中声明了一个数组和一个变量,我已经创建了我的方法调用,并且希望我的数组和变量一起传递到我的方法中。然后,我希望该方法获取我的数组并计算变量“8”出现的次数,从数组中去掉8,并将一个新的较小数组返回到main。下面是我的代码。我觉得好像我只是错过了一个块代码有什么建议吗

public class Harrison7b
{
   public static void main(String [] args)
   {
      int[] arrayA = {2,4,8,19,32,17,17,18,25,17,8,3,4,8};
      int varB = 8;
      // Call with the array and variable you need to find.
    int[] result =  newSmallerArray(arrayA, varB);

    for(int x = 0; x < arrayA.length; x++)
    {
      System.out.print(arrayA[x] + " ");


    }

   }

   public static int[] newSmallerArray( int[] arrayA, int varB)
   {
      int count = 0;   

      for(int x = 0; x < arrayA.length; x++)
      {
         if(arrayA[x] == varB)
         {
            count++;
         }
      }
         int [] arrayX = new int[arrayA.length - count];




      for(int B = 0; B < arrayA.length; B++)
      {
         if(arrayA[B] != varB)
         {

         }
      }
      return arrayX;
   }
}
公共类Harrison7b
{
公共静态void main(字符串[]args)
{
int[]arrayA={2,4,8,19,32,17,17,18,25,17,8,3,4,8};
int-varB=8;
//使用需要查找的数组和变量调用。
int[]result=newSmallerArray(arrayA,varB);
对于(int x=0;x
您实际上不需要返回数组,因为当您将数组传递给一个方法时,您也会传递它的内存地址,这意味着它与您更改的地址相同。因此,它也会更改main方法的arraysA,因为您只是在更改相同内存地址的值

import java.util.*;




public class Help
{


public static void main(String[] args)
{
    ArrayList<Integer> arraysA = new ArrayList<Integer>();
    arraysA.add(Integer.valueOf(2));
    arraysA.add(Integer.valueOf(4));
    arraysA.add(Integer.valueOf(8));
    arraysA.add(Integer.valueOf(19));
    arraysA.add(Integer.valueOf(32));
    arraysA.add(Integer.valueOf(17));
    arraysA.add(Integer.valueOf(17));
    arraysA.add(Integer.valueOf(18));
    arraysA.add(Integer.valueOf(25));
    arraysA.add(Integer.valueOf(17));
    arraysA.add(Integer.valueOf(8));
    arraysA.add(Integer.valueOf(3));
    arraysA.add(Integer.valueOf(4));
    arraysA.add(Integer.valueOf(8));
     int varB=8;
    newSmallerArray(arraysA,varB);
    for(Integer i:arraysA)
    {
        System.out.println(i);
    }


}
public static void newSmallerArray(ArrayList<Integer> arraysA,int varB)
{
    for(int i=0;i<arraysA.size();++i)
    {
        if(Integer.valueOf(arraysA.get(i))==varB)
        {
            arraysA.remove(i);
        }
    }
}
import java.util.*;
公共课帮助
{
公共静态void main(字符串[]args)
{
ArrayList arraysA=新的ArrayList();
arraysA.add(Integer.valueOf(2));
arraysA.add(Integer.valueOf(4));
arraysA.add(Integer.valueOf(8));
arraysA.add(Integer.valueOf(19));
arraysA.add(Integer.valueOf(32));
arraysA.add(Integer.valueOf(17));
arraysA.add(Integer.valueOf(17));
arraysA.add(Integer.valueOf(18));
arraysA.add(Integer.valueOf(25));
arraysA.add(Integer.valueOf(17));
arraysA.add(Integer.valueOf(8));
arraysA.add(Integer.valueOf(3));
arraysA.add(Integer.valueOf(4));
arraysA.add(Integer.valueOf(8));
int-varB=8;
newSmallerArray(arraysA,varB);
for(整数i:arraysA)
{
系统输出打印LN(i);
}
}
公共静态void newSmallerArray(ArrayList arraysA,int varB)
{

对于(int i=0;i请尝试此代码,循环不需要此代码:

List<Integer> list = new ArrayList<Integer>(Arrays.asList(arrayA));
list.removeAll(Arrays.asList(8));
arrayA = list.toArray(array);
List List=newarraylist(Arrays.asList(arrayA));
removeAll(Arrays.asList(8));
arrayA=list.toArray(数组);

你的问题是什么?为什么我的代码不返回没有8的新数组,所以你想删除数组中的
8
?Arraylist是最好的解决方案。Arraylist变量能够调整其数组对象的大小,只需将int转换为整数类是将数组传递给我的方法,然后我想计算它的大小wn在方法中删除8并将其发送回main。分配需要使用for循环\n我不同意您的意见,请查看此问题的答案: