在java中将对象[]数组转换为int[]数组?

在java中将对象[]数组转换为int[]数组?,java,arrays,object,integer,homework,Java,Arrays,Object,Integer,Homework,似乎没有简单的方法可以做到这一点,但这就是我到目前为止所做的,如果有人能纠正它,使其工作,那将是伟大的。在“newarray[e]=array[i].intValue();“我得到一个错误”中,在类型“java.lang.Object”中找不到名为“intValue”的方法 救命啊 /* 描述:显示数字0-9并要求用户输入数字N的游戏。 然后它反转序列的前N个数字。它一直持续到 所有的数字都是按顺序排列的。 数字 */ 导入hsa.Console; 导入java.util.ArrayList;

似乎没有简单的方法可以做到这一点,但这就是我到目前为止所做的,如果有人能纠正它,使其工作,那将是伟大的。在“newarray[e]=array[i].intValue();“我得到一个错误”中,在类型“java.lang.Object”中找不到名为“intValue”的方法 救命啊

/*
描述:显示数字0-9并要求用户输入数字N的游戏。
然后它反转序列的前N个数字。它一直持续到
所有的数字都是按顺序排列的。
数字
*/
导入hsa.Console;
导入java.util.ArrayList;
导入java.util.Collections;
导入java.util.List;
导入java.util.array;
公共类反向algame3test
{
静态控制台c;
公共静态void main(字符串[]args)
{
c=新控制台();
c、 println(“3.反转游戏”);
c、 println(“”);
c、 println(“下面显示的是按随机顺序排列的数字0-9,然后必须输入a”);
c、 println(“编号N,之后计算机将反转列表中的前N个编号”);
c、 println(“顺序。这个游戏的目标是以最少的顺序对所有的数字进行排序”);
c、 println(“反转次数”);
c、 println(“”;//简介
列表编号=新的ArrayList();
数字。添加(“0”);
编号。添加(“1”);
编号。添加(“2”);
编号。添加(“3”);
编号。添加(“4”);
编号。添加(“5”);
编号。添加(“6”);
编号。添加(“7”);
编号。添加(“8”);
编号。添加(“9”);
收藏。洗牌(数字);
Object[]array=numbers.toArray(新字符串[10]);//声明+洗牌数字并将其转换为数组
c、 打印(“随机顺序:”);
对于(int i=0;i<10;i++)
{
c、 打印((数组[i])+“”);
}
c、 println(“”);
布尔检查=假;
布尔校验2=假;
字符串NS;
int N=0;
整数计数=0;
int e=-1;
int[]newarray=newint[10];
//输入
做
{
c、 打印(“输入一个数字:”);
NS=c.readString();
计数+=1;
检查=isInteger(NS);
如果(检查==true)
{
N=整数.parseInt(NS);
如果(N<1 | | N>10)
{
检查=错误;
c、 println(“错误-输入无效”);
c、 println(“”);
}
其他的
{
c、 打印(“下一订单:”);
对于(int i=N-1;i>-1;i--)
{
e+=1;
newarray[e]=array[i].intValue();
c、 打印((newarray[e])+“”);
}
对于(int i=N;i<10;i++)
{
e+=1;
newarray[e]=array[i].intValue();
c、 打印((newarray[e])+“”);
}
check2=已排序(newarray);
}//如果有效,则重新排列数字
}//检查N是否为有效数字
}
while(check==false);
}//主方法
公共静态布尔isInteger(字符串输入)
{
尝试
{
Integer.parseInt(输入);
返回true;
}
捕获(NumberFormatException nfe)
{
返回false;
}
}//isInteger方法
公共静态布尔排序(int数组[])
{
布尔值isSorted=false;
对于(int i=0;i<10;i++)
{
if(数组[i]<数组[i+1])
{
isSorted=true;
}
else if(数组[i]>数组[i+1])
{
isSorted=true;
}
其他的
isSorted=假;
如果(isSorted!=真)
返回分类;
}
返回分类;
}//排序方法

}您不能在
对象上调用
.intValue()
,因为
对象
类缺少方法
intValue()

相反,您需要首先将
对象
强制转换为
整数
类,如下所示:

newarray[e] = ((Integer)array[i]).intValue();
编辑:只是一个关于StackOverflow的有用提示-请将您的代码限制在相关的范围内!虽然有时需要大量的代码,但在本例中并非如此。这会让问题看起来更好,这样肯定会得到更好的回答

另外,请不要使用标签。它目前已被弃用,正在烧掉。

您可以使用

Integer
类有一个方法
valueOf
,它将字符串作为值并返回一个
int
值,您可以使用这个方法。如果传递给它的字符串不是有效的整数值,它将抛出一个
NumberFormatException


另外,如果您使用的是java5或更高版本,您可以尝试使用来提高代码的可读性。

您可以使用实现相同的功能,这会更容易

List<Integer> numbers = new ArrayList<Integer> ();
Integer[] array = numbers.toArray (new Integer [10]);
List number=new ArrayList();
整数[]数组=numbers.toArray(新整数[10]);
试试看 公地郎

org.apache.commons.lang.ArrayUtils.toPrimitive(Integer[])

我知道这已经很晚了,但这是我的2美分

int[] newArray=new int[objectArray.length];
Object[] objectArray = {1,2,3,4,5};

for(int i=0;i<objectArray.length();i++){
    b[i]=(int)objectArray[i];
}
int[]newArray=newint[objectArray.length];
Object[]objectArray={1,2,3,4,5};

对于(int i=0;我为什么要首先创建一个
对象
数组?因为我别无选择,它不允许我直接将ArrayList转换为int数组。你可以使用
整数
数组。但我仍然无法像比较int数组那样比较整数数组,如果是这样,我不知道如何将其转换为int数组。我质疑这个解决方案(在本例中似乎并不重要)。将
(字符串)
转换为
Integer.valueOf()
包含
String
值,因此
(Integer)数组[i]
应该引发类强制转换异常。刚刚测试过,这里没有引发异常。语句
((Integer)x[1])。intValue()
返回适当的值,其中
x
org.apache.commons.lang.ArrayUtils.toPrimitive(Integer[])
int[] newArray=new int[objectArray.length];
Object[] objectArray = {1,2,3,4,5};

for(int i=0;i<objectArray.length();i++){
    b[i]=(int)objectArray[i];
}