标签: arraylist

Java中的ArrayList和多线程

在什么情况下,一个不同步的集合,比如一个ArrayList,会导致问题?我想不出任何问题,有人可以给我一个例子,其中ArrayList导致问题而Vector解决了吗?我写了一个程序,有2个线程都修改了一个元素的arraylist.一个线程将"bbb"放入arraylist,而另一个线程将"aaa"放入arraylist.我真的没有看到字符串被修改一半的实例,我在这里是正确的轨道?

另外,我记得我被告知多个线程并没有真正同时运行,一个线程运行一段时间,另一个线程运行(在具有单个CPU的计算机上).如果这是正确的,两个线程怎么可能同时访问相同的数据?也许线程1将在修改内容时停止,线程2将被启动?

提前谢谢了.

java multithreading arraylist

23
推荐指数
3
解决办法
3万
查看次数

将ArrayList转换为包含不同长度数组的2D数组

所以我有:

ArrayList<ArrayList<String>> 
Run Code Online (Sandbox Code Playgroud)

其中包含x个包含另外y个字符串的ArrayLists.演示:

Index 0:
  String 1
  String 2
  String 3
Index 1:
  String 4
Index 2:
Index 3:
  String 5
  String 6
Run Code Online (Sandbox Code Playgroud)

其中index是指包含字符串的数组索引.

如何将其转换为2D数组,如下所示:

{{String1, String2, String3},{String4}, {}, {String5, String6}}
Run Code Online (Sandbox Code Playgroud)

非常感谢.

java indexing arraylist multidimensional-array varying

23
推荐指数
3
解决办法
6万
查看次数

求和java arraylist的所有元素

如果我有:ArrayList<Double> m = new ArrayList<Double>(); 使用里面的double值,我该如何添加所有ArrayList元素?

public double incassoMargherita()
{
 double sum = 0;
 for(int i = 0; i < m.size(); i++)
 {          
 }
 return sum;
}
Run Code Online (Sandbox Code Playgroud)

如?

java sum arraylist

23
推荐指数
5
解决办法
17万
查看次数

ArrayList.clear()方法是否释放内存?

如果我没弄错的话,ArrayList包含存储位置的值,在这些位置中存储了你添加到List中的变量.所以,我的假设是,当你调用ArrayList.clear()方法时,它只释放上述值(内存位置)但不释放这些内存位置本身.我将尝试用一个例子来说明这一点:

假设您已拥有内存的当前状态:

[Memory location] (type of variable) *value*

[1000] (int) 32

[1002] (int) 12

[1003] (float) 2.5
Run Code Online (Sandbox Code Playgroud)

然后将它们添加到列表myList中,因此它包含指向1000,1002,1003内存位置的指针.

当您调用myList.clear()时,指针将无效,但内存位置1000,1002,1003仍将包含先前给定的值.我错了吗?

java memory android arraylist

23
推荐指数
3
解决办法
3万
查看次数

22
推荐指数
3
解决办法
4万
查看次数

如何从Java中的ArrayList中删除特定对象?

如何从ArrayList中删除特定对象?假设我有一个如下课程:

import java.util.ArrayList;    
public class ArrayTest {
    int i;

    public static void main(String args[]){
        ArrayList<ArrayTest> test=new ArrayList<ArrayTest>();
        ArrayTest obj;
        obj=new ArrayTest(1);
        test.add(obj);
        obj=new ArrayTest(2);
        test.add(obj);
        obj=new ArrayTest(3);
        test.add(obj);
    }
    public ArrayTest(int i){
        this.i=i;
    }
}
Run Code Online (Sandbox Code Playgroud)

如何new ArrayTest(1)从我的删除对象ArrayList<ArrayList>

java arraylist

22
推荐指数
5
解决办法
15万
查看次数

如何使用invokeAll()让所有线程池完成他们的任务?

    ExecutorService pool=Executors.newFixedThreadPool(7);
        List<Future<Hotel>> future=new ArrayList<Future<Hotel>>();
        List<Callable<Hotel>> callList = new ArrayList<Callable<Hotel>>();

        for(int i=0;i<=diff;i++){

            String str="2013-"+(liDates.get(i).get(Calendar.MONTH)+1)+"-"+liDates.get(i).get(Calendar.DATE);

            callList.add(new HotelCheapestFare(str));

        }       
     future=pool.invokeAll(callList);
for(int i=0;i<=future.size();i++){

        System.out.println("name is:"+future.get(i).get().getName());
    }
Run Code Online (Sandbox Code Playgroud)

现在我想invokeAll在进入for循环之前将pool放到所有任务中,但是当我运行这个程序for循环时,在此之前执行invokeAll并抛出此异常:

java.util.concurrent.ExecutionException: java.lang.NullPointerException at 
java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source) at  
java.util.concurrent.FutureTask.get(Unknown Source) at 
com.mmt.freedom.cheapestfare.TestHotel.main(TestHotel.java:6??5)

Caused by: java.lang.NullPointerException at 
com.mmt.freedom.cheapestfare.HotelCheapestFare.getHotelCheap?estFare(HotelCheapes??tFare.java:166) 
at com.mmt.freedom.cheapestfare.HotelCheapestFare.call(HotelChe??apestFare.java:219)
at com.mmt.freedom.cheapestfare.HotelCheapestFare.call(HotelChe??apestFare.java:1) 
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) atjava.util.concurrent.ThreadPoolExecutor$Worker.run(Unknow??n Source)
at java.lang.Thread.run
Run Code Online (Sandbox Code Playgroud)

java multithreading future arraylist executorservice

22
推荐指数
2
解决办法
5万
查看次数

获取迭代ArrayList的每个循环的当前索引

我正在ArrayList使用for循环迭代,但我不知道如何获取循环所在的当前索引.

我做谷歌,但我找不到任何有用的东西.

如果有人能告诉我如何获得当前指数,我将不胜感激.

java indexing foreach arraylist

22
推荐指数
3
解决办法
6万
查看次数

ArrayList#size()超过实际的对象数

我的Android应用程序中有一个ArrayList,它有2个项目.但是,它的大小方法返回3.我知道它听起来真的很简单和愚蠢,但这是如何:

在此输入图像描述

为什么会这样?ArrayList的大小如何返回错误的数字?当我迭代列表时,这会导致空指针异常.

java arraylist intellij-idea android-studio

22
推荐指数
1
解决办法
1962
查看次数

Java ArrayList到Kotlin数组

有没有简单的方法将Java ArrayList转换为Kotlin数组?以下代码:

fun test(): Array<String> {
  val elems = ArrayList<String>()
  return elems.toArray()
}
Run Code Online (Sandbox Code Playgroud)

给出错误:

main.kt:2:15: error: unresolved reference: ArrayList
  val elems = ArrayList<String>()
              ^
Run Code Online (Sandbox Code Playgroud)

我正在解析一些JSON并且不知道我最终会有多少元素,但是一旦我读完它们,我就不需要以任何方式修改数据了所以我想我会选择Kotlin数组作为数据类型.

arrays arraylist kotlin

22
推荐指数
1
解决办法
3万
查看次数