//从键盘录入10个整数数据,将每次录入的数据按从小到大的顺序插入到数组中
//程序编译出现了“使用了未经检查或不安全的操作”,如何解决??????
//提示我使用-Xlint:unchecked,提示是:程序的所有add()方法出现问题????你最好调试一下
import java.util.*;
public class TestArrayList{
public void changeL(ArrayList aL,int b){
Integer x=new Integer(b);
if(aL.size()>1)//数据个数大于2的情况
{
Integer h1=(Integer)aL.get(0),h2=(Integer)aL.get(aL.size()-1);//用到强制类型转换,请问有什么改进办法????
if(b>=h1.intValue()&&b<=h2.intValue())
{
for(int i=0;i<aL.size();i++){
Integer h3=(Integer)aL.get(i),h4=(Integer)aL.get(i+1);//用到强制类型转换,请问有什么改进办法?
if(b>=h3.intValue()&&b<=h4.intValue())
{aL.add(i+1,x);break;}
}
}
else{
if(b>h2)
aL.add(x);
else
aL.add(0,x);
}
}
else if(aL.size()==0)//数据个数为0的情况
aL.add(x);
else//数据个数为1的情况
{
Integer h5=(Integer)aL.get(0);//用到强制类型转换,请问有什么改进办法?
if(b<=h5.intValue())
aL.add(0,x);
else
aL.add(x);
}
}
public static void main(String [] args){
TestArrayList testA=new TestArrayList();//创建一个自定义类
ArrayList aLi=new ArrayList();//定义ArrayList类
int a;
Scanner scanner=new Scanner(System.in);
for(int i=0;i<10;i++)
{
System.out.println("输入数据前size大小"+aLi.size());
System.out.print("输入第"+(i+1)+"整数:");
a=scanner.nextInt();
testA.changeL(aLi,a);
}
System.out.println("输出整个数列:");
for(int i=0;i<aLi.size();i++)
System.out.print(aLi.get(i)+"\t");
}
}
1、请解决程序中我注释的问题,有问号的就是问题!
2、如果你有更好的方法请写出来!
这样写就可以了
首先谢谢你,肯定你花了时间,但是我的要求是输入一个就插入一次,不是输入完了才去排序。那就是直接调用了。相似的问题我看到过。我是初学者,注重过程,结果虽然一样。
如果有类似回答请绕道!!!
主要解决下我提的问题!3q
你这样的话把你arraylist换成List就可以了,就不会出现强制类型转换了
本回答被网友采纳