麻烦大家帮我看一个IndexOutException的问题。。。我实在弄不明白是怎么会事情 set方法传入的参数i不再有小范围之内,应该确保arraylist离有那么多东西 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 use add() instead of set() method when you are reading strings in:str.add(in.readLine()); there are some other errors, tryimport java.io.*;import java.util.*;class input //implements List{ public static void main(String args[]){List str=new ArrayList();int i=0;str.clear();while(true){try{BufferedReader in=new BufferedReader(new InputStreamReader(System.in));String s = in.readLine();if((s==null) || s.equals("end"))break;else{str.add(s);i++;}}catch(IOException e){System.out.println(e.toString());}}for(i=0;i<str.size()-1;i++){for(int t=i;t<str.size();t++){if((str.get(i).toString()).compareTo(str.get(t).toString())>0){Object temp=str.get(i);str.set(i,str.get(t));str.set(t,temp);}}}System.out.println("now is the result:");for(i=0;i<str.size();i++)System.out.println(str.get(i));} } ArrayList类在生成实例的时候,如果没有指明大小,则它有一个默认的容量capacity;使用add方法往里面增加数据时,如果类发现容量不够了,会自动增加容量;而使用set方法时,只是单纯修改指定位置的对象,如果指定的位置超出了容量,就会出现IndexOutException。 用JAVA代码实现页面打印 一个简单的不规则数组 一个关于窗体的逻辑性问题 javamail使用 jdk的使用问题 环境变量怎么设置,送200分 请问exception类中的方法printStackTrace()是做什么用的? 询问关于visualage for java的问题 !!! 如何通过http访问远程地址上的文件? 急急急!用 jdbc取 oracle 中中文数据的显示问题? 寻JBuilder 6 Interprise 的Serial Number或License Key?
str.add(in.readLine());
import java.util.*;
class input //implements List
{
public static void main(String args[])
{
List str=new ArrayList();
int i=0;str.clear();while(true)
{try
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String s = in.readLine();
if((s==null) || s.equals("end"))
break;
else
{
str.add(s);
i++;
}
}
catch(IOException e)
{
System.out.println(e.toString());
}
}
for(i=0;i<str.size()-1;i++)
{for(int t=i;t<str.size();t++)
{
if((str.get(i).toString()).compareTo(str.get(t).toString())>0)
{
Object temp=str.get(i);
str.set(i,str.get(t));
str.set(t,temp);
}
}
}
System.out.println("now is the result:");for(i=0;i<str.size();i++)
System.out.println(str.get(i));
}
}
增加容量;而使用set方法时,只是单纯修改指定位置的对象,如果指定的位置
超出了容量,就会出现IndexOutException。