Java ArrayList仅插入单个元素 ArrayList fixList=new ArrayList(); StringTokenizer st=新的StringTokenizer(idlist,“,”); int指数=0; 而(st.hasMoreElements()){ Long id=Long.parseLong(st.nextElement().toString()); add(index++,fixManager.getFixById(id)); }
这里的Arraylist只能接受一个元素。我调试了它,它只需要一个元素,但count显示arraylist中有两个或更多元素。为什么不直接添加元素,而不定义索引Java ArrayList仅插入单个元素 ArrayList fixList=new ArrayList(); StringTokenizer st=新的StringTokenizer(idlist,“,”); int指数=0; 而(st.hasMoreElements()){ Long id=Long.parseLong(st.nextElement().toString()); add(index++,fixManager.getFixById(id)); },java,collections,Java,Collections,这里的Arraylist只能接受一个元素。我调试了它,它只需要一个元素,但count显示arraylist中有两个或更多元素。为什么不直接添加元素,而不定义索引 ArrayList<Fix> fixList = new ArrayList<Fix>(); StringTokenizer st = new StringTokenizer(idlist, ","); int index = 0; while(st.hasMoreElements()) { Long i
ArrayList<Fix> fixList = new ArrayList<Fix>();
StringTokenizer st = new StringTokenizer(idlist, ",");
int index = 0;
while(st.hasMoreElements()) {
Long id = Long.parseLong(st.nextElement().toString());
fixList.add(index++,fixManager.getFixById(id));
}
查看使用
HashMap
进行任何类型的映射
fixList.add(fixManager.getFixById(id));
您确定fixManager为每个调用返回对象吗?如果您尝试添加null,ArrayList不会出现问题。您的语法正确,但方法正确
fixList.add(fixManager.getFixById(id));
内部循环仅基于该Id返回一个元素
您可以通过调试fixManager中的
getFixById(id)
看到它
fixManager.getFixById(id)
ArrayList x=new ArrayList();
对于(int i=0;i您不会像那样在ArrayList中添加多个元素..您可以使用HashMap实现您想要实现的功能..请为sameJust使用fixList.add(fixManager.getFixById(id))编写输入和输出
调试时,是否查看ArrayList中的内部数组?如果是,则如果使用默认构造函数,将预先分配长度为10的数组。查看size
属性以查看实际存储的元素数。“只需一个元素,但计数显示两个…”.什么是count
?效果是一样的,所以这不可能是实际问题,对吗?@CostiCiudatu如果效果是一样的,那么问题出在fixManager.getFixById(id)
…或StringTokenizer只有一个令牌
fixManager.getFixById(id)
ArrayList <Integer> x = new ArrayList<Integer>();
for(int i=0;i<15;i++)
{
x.add(i);
x.add(i);
}
for(int i=0;i < x.size();i++)
{
System.out.println(x.get(i));
}