Java 以下程序缺少哪个类?
您正在从静态方法调用方法“unique\u element”。Java 以下程序缺少哪个类?,java,arrays,Java,Arrays,您正在从静态方法调用方法“unique\u element”。 要解决这个问题,要么将方法“unique_element”声明为静态的,要么在对象上下文中调用它 if(arr[j]&x) 请注意,要传递数组,您应该使用“arr”作为参数调用“unique_element”,而不是“arr[]”。您忘记了清除N的数据类型。还需要声明方法唯一的\u元素->静态,或者创建测试的新实例 例如: Test t = new Test(); int arr[]={3,1,1,9,3,1,
要解决这个问题,要么将方法“unique_element”声明为静态的,要么在对象上下文中调用它
if(arr[j]&x)
请注意,要传递数组,您应该使用“arr”作为参数调用“unique_element”,而不是“arr[]”。您忘记了清除
N
的数据类型。还需要声明方法唯一的\u元素
->静态
,或者创建测试的新实例
例如:
Test t = new Test();
int arr[]={3,1,1,9,3,1,3,9,9,5};
int N = arr.length;
t.unique_element(arr,N);
更新:
if语句-->if(arr[j]&x){sum++;}
实际上if(arr[j]&x)
是c
风格的Java语法,在if
语句中需要一个boolean
表达式。您可以更改它:
public static void main(String[] args){
int arr[]={3,1,1,9,3,1,3,9,9,5};
// declear N with data type
int N=arr.length;
System.out.println(new Test().unique_element(arr,N));
}
同样的情况也适用于:if(总和%3)
。这应该是:
if((arr[j] & x) !=0){ sum++;}
虽然给出的这些答案会让你得到正确的答案,但我会选择不同的方法,并实际将
unique_element
作为一个静态方法,这意味着它只会有一个实例。静态方法非常适合这种情况,因为它不需要状态、两个输入和一个输出
例如:
if(sum%3 !=0)
{
result |= x;
System.out.println(x);
}
包org.stackoverflow.thread\u safe\u账户;
公开课考试{
公共静态int唯一_元素(int arr[],
int(n){
int结果=0;
对于(int i=0;i x=(1也可以简化为new Test()。unique_元素(arr[],N);
@rocus2k绝对,我只是假设OP是初学者,可能会被一个线性调用弄糊涂。你真的会调用unique_元素(arr[],N);
提示:[]
org.stackoverflow.thread safe_帐户有什么用这个包?它只是我把示例代码放在其中的包的名称?其中的条件“if”应该计算为true或false。您是否打算使用“&&”而不是“&”?同样,您应该使用“sum%3==0”或“sum%3!=0”而不是“sum%3”@sukesh我已经更新了答案。
if(sum%3 !=0)
{
result |= x;
System.out.println(x);
}
package org.stackoverflow.thread_safe_account;
public class Test {
public static int unique_element(int arr[],
int n) {
int result = 0;
for (int i = 0; i < n; i++) {
int sum = 0;
x = (1 << i);
for (int j = 0; j < n; j++) {
if (arr[j] & x)
sum++;
}
if (sum % 3) {
result |= x;
System.out.println(x);
}
}
return (result);
}
public static void main(String[] args) {
int arr[] = {3, 1, 1, 9, 3, 1, 3, 9, 9, 5};
N = arr.length;
System.out.println(Test.unique_element(arr[],N));
}
}