我试图通过创建一个新的Java类来找到数组中的最小值。我无法传入数组并使用它来查找数组的最小值。
我总共有两个独立的数组,我试图找到它的值。
这是我创建的第一堂课:
An unhandled exception has occured
Click here to reload the designer
Details:
System.TypeLoadException
Could not find Windows Runtime type 'Windows.ApplicationModel.Package'.
at Microsoft.Expression.HostUtility.Platform.AppContainerProcessDomainFactory.CreateDesignerProcess(String applicationPath, String clientPort, Uri hostUri, IDictionary environmentVariables, Int32& processId, Object& processData)
at Microsoft.Expression.DesignHost.Isolation.Primitives.ProcessDomainFactory.ProcessIsolationDomain..ctor(ProcessDomainFactory factory, IIsolationBoundary boundary, AppDomainSetup appDomainInfo, FrameworkName targetFramework, String identifier, String baseDirectory)
at Microsoft.Expression.DesignHost.Isolation.Primitives.ProcessDomainFactory.CreateIsolationDomain(IIsolationBoundary boundary)
at Microsoft.Expression.HostUtility.Platform.AppContainerProcessDomainFactory.CreateIsolationDomain(IIsolationBoundary boundary)
at Microsoft.Expression.DesignHost.Isolation.Primitives.IsolationBoundary.Initialize()
at Microsoft.Expression.DesignHost.Isolation.Primitives.IsolationBoundary.CreateInstance[T](Type type)
at Microsoft.Expression.DesignHost.Isolation.IsolatedObjectFactory.Initialize()
at Microsoft.Expression.DesignHost.Isolation.IsolationService.AttachEvents(IsolatedObjectFactory objectFactory)
at Microsoft.Expression.DesignHost.Isolation.IsolationService.CreateLease(IIsolationTarget isolationTarget)
at Microsoft.Expression.DesignHost.IsolatedDesignerService.CreateLease(IIsolationTarget isolationTarget, CancellationToken cancelToken, DesignerServiceEntry& entry)
at Microsoft.Expression.DesignHost.IsolatedDesignerService.IsolatedDesignerView.CreateDesignerViewInfo(CancellationToken cancelToken)
at Microsoft.Expression.DesignHost.Isolation.IsolatedTaskScheduler.InvokeWithCulture[T](CultureInfo culture, Func`2 func, CancellationToken cancelToken)
at Microsoft.Expression.DesignHost.Isolation.IsolatedTaskScheduler.<>c__DisplayClassa`1.<StartTask>b__6()
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()"
目前设置这是为了找到length1 []的最小值(也就是第一个数组)。
这是我试图将数组传递到的类:
import java.util.*;
public class mooseWeight
{
public int main(String[] args)
{
int[] length1;
int[] length2;
length1 = new int[20];
length2 = new int[50];
//Length 1
System.out.println("Array 1:");
Random rnd = new Random();
for(int i = 0; i<length1.length; i++)
{
length1[i] = rnd.nextInt(400) + 250;
System.out.println(length1[i]);
return length1[i];
}
System.out.println("-----------------------------------");
//Length2
System.out.println("Array 2:");
Random rnd2 = new Random();
for(int j = 0; j < length2.length; j++)
{
length2[j] = rnd2.nextInt(400) + 250;
System.out.println(length2[j]);
return length2[j];
}
}
}
我当前的错误:
public class minWeight
{
public static int getArrayMin(int[] arr)
{
mooseWeight array1[] = new mooseWeight[];
int minValue = array1[0];
for (int i = 0; i < array1.length; i++)
{
if (array1[i] < minValue)
{
minValue = array1[i];
}
//return minValue;
}
return minValue;
System.out.println(minValue);
}
}
答案 0 :(得分:0)
您的mooseWeight
课程包含您的主要内容,因此当您创建array1
时,您正在尝试创建包含实际程序的数组。
mooseWeight array1[] = new mooseWeight[];
正在创建一个mooseWeight对象数组。
由于你没有定义一个大小,这将失败,但即使它没有,它也行不通。
我假设您打算创建一个int
数组,然后循环它。
如果您创建了一个int
数组,然后尝试在不添加任何内容的情况下循环它,则循环将不执行任何操作,因为没有任何内容可以迭代。
在您的方法中,传入一个名为int
的{{1}}数组,因此您需要使用它来循环。
如果您尝试将2个数组传递给方法,则创建数组作为方法的一部分仍然无效。
您需要修改方法声明以接受第二个数组。
假设您想要从这两个数组中找到最小值,我已经修改了我的代码片段来做到这一点。
如果您需要以不同方式处理第二个数组,请修改处理arr
的循环。
正如评论中所提到的,您的secondArr
类应该被命名为mooseWeight
以保持正确的Java命名约定。
类名在PascalCase中,其实例在camelCase中。
要调用该方法,请使用以下代码段。
MooseWeight
类别:
int[] ar1 = new int[20];
int[] ar2 = new int[50];
//Populate your arrays with values....
int minValue = MinWeight.getArrayMin(ar1, ar2);
作为最后一个问题,在您的代码中,在尝试打印结果之前返回 public class MinWeight {
public static int getArrayMin(int[] arr, int[] secondArr) {
int minValue = arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i] < minValue)
{
minValue = arr[i];
}
}
for (int i = 0; i < secondArr.length; i++) {
if (secondArr[i] < minValue)
{
minValue = secondArr[i];
}
}
System.out.println(minValue);
return minValue;
}
}
,因此打印指令始终无法访问。
答案 1 :(得分:0)
minWeight中的错误不是数组参数,它来自这一行:
['apps', 'apples']
您无法在java中分配未知维度的数组。 此外,您尝试这样做是没有意义的。 只需从java方法中删除上面的行,然后将参数名称更改为array1。
获取类似netbeans或eclipse的IDE。