如果要往Vector中添加类似这样的一组数据 “1,aaaa”“3,aaaa”“6,aaaa”“2,aaaa”“5,aaaa”“4,aaaa”,这些数据从另外的类传递过来,动态的添加到Vector,而且还要按照前面的序号进行排序,我自己添加的时候,总是会出现错误,vector中有一部分的值是null,不知道用怎么的方法进行动态的保存,求讲解~
解决方案 »
- JPA简单例子,junit测试通过,但总是生成不了数据库,求指导,在线等!!!
- 项目开启的时候报错。
- struts2,java,页面跳转问题
- common-logging.properties 怎么使用
- 问"前辈"一个问题(非技术)?......j2ee
- 菜鸟问题1:望各位大侠指教!
- eclipse 2.1.1 windows版本的下载地址??????不要高版本的
- java向Oracle9I数据库中插入数据
- 我用JBuild8自动生成了一个EntityBean,BMP的,又自动生成了一个TestClient.java来测试这个EntityBean,却报错?????(在线等待)
- AOP问题,烦恼我一天了!
- 高分求助!!!急急急!!!
- JSP 的java.lang.NumberFormatException: null
判断前面的序号是多少然后就这样搞 v.setElementAt("a", 1);
v.setElementAt("b", 2);
v.setElementAt("c", 3);
Collections.sort(v, new Comparator<String>() {
public int compare(String s1, String s2) {
return Integer.parseInt(s1.substring(0, s1.indexOf(",")))
- Integer.parseInt(s2.substring(0, s2.indexOf(",")))
}
});
lz自己调试下。
java.lang.ArrayIndexOutOfBoundsException: 1 > 0
这个会报异常的吧,
“1,aaaa”“3,aaaa”“6,aaaa”“2,aaaa”“5,aaaa”“4,aaaa”读到3的时候,其实v的长度只有1,你v.setElementAt("3,aaaa", 3);
Vector<String> v = new Vector<String>();
v.add("1,aaaa");
v.add("3,aaaa");
v.add("6,aaaa");
v.add("2,aaaa");
v.add("5,aaaa");
v.add("4,aaaa"); Collections.sort(v, new Comparator<String>() {
public int compare(String s1, String s2) {
return Integer.parseInt(s1.substring(0, s1.indexOf(",")))
- Integer.parseInt(s2.substring(0, s2.indexOf(",")));
}
}); for(int i = 0; i < v.size(); i++) {
System.err.println(v.get(i));
}
2,aaaa
3,aaaa
4,aaaa
5,aaaa
6,aaaa
你可以这样做:
每添加一条数据,加一个判断,如果当前要加入的索引值大于当前vector.size(),就执行一次vector.setSize(num),重新设置大小。。这样就会增大vector的长度大小当然,如果数据量比较大时,你可以每次setSize()的长度按照一个固定大小值,例如100,或者1000等等增加,这样可以减少改变容量的次数。
你是被1楼的说法误导了,他说的方法本来就是错误的,还要照这错误的方式去分析,另外用HashMap存储干啥?你又不是(key,value)