我是arraylist概念的新手.我做了一个简短的程序如下:
ArrayList<int[]> arl=new ArrayList<int[]>();
int a1[]={1,2,3};
arl.add(0,a1);
System.out.println("Arraylist contains:"+arl.get(0));
Run Code Online (Sandbox Code Playgroud)
它给出了输出: Arraylist contains:[I@3e25a5
现在我的问题是:
我们有多个线程调用add(obj)上ArrayList.
我的理论是,当add两个线程同时调用时,添加的两个对象中只有一个真正被添加到ArrayList.这有可能吗?
如果是这样,你怎么解决这个问题?使用同步集合Vector吗?
在Java中,如何将HashMap返回的值作为List?
我有一个数组,我想分成更小的n个数组,并对每个数组执行操作.我目前的做法是
用Java中的ArrayLists实现(任何伪代码都可以)
for (int i = 1; i <= Math.floor((A.size() / n)); i++) {
ArrayList temp = subArray(A, ((i * n) - n),
(i * n) - 1);
// do stuff with temp
}
private ArrayList<Comparable> subArray(ArrayList A, int start,
int end) {
ArrayList toReturn = new ArrayList();
for (int i = start; i <= end; i++) {
toReturn.add(A.get(i));
}
return toReturn;
}
Run Code Online (Sandbox Code Playgroud)
其中A是列表,n是所需列表的大小
我相信这种方式在处理相当大的列表(大小高达100万)时花费了太多时间,所以我试图弄清楚什么会更有效率.
在我的应用程序中,我需要将我的arraylist转换为数组的字符串.但是,我收到一个错误:
ClassCastException: java.lang.Object[] cannot be cast to java.lang.String[] android
Run Code Online (Sandbox Code Playgroud)
在listofurls我收到错误的行:listofurls = (String[])image_urls.toArray();
这是完整的代码:
public class Test2 extends AsyncTask<Void, Void, Void>
{
String[] listofurls ;
private static final String url = "http://www.tts.com/album_pro/array_to_encode";
JSONParser jParser = new JSONParser();
ArrayList<String> image_urls = new ArrayList<String>();
protected void onPreExecute() {
//Log.e(LOG_CLASS, "in side assyntask");
}
protected Void doInBackground(Void... voids) {
Log.v("Async","Async");
JSONObject json = jParser.getJSONFromUrl(url);
try {
JSONObject seo = json.getJSONObject("SEO");
JSONArray folio = seo.getJSONArray("Folio");
// JSONArray image_urls1 = new JSONArray();
//String …Run Code Online (Sandbox Code Playgroud) 可能重复:
如何克隆ArrayList并克隆其内容?
试图制作一个ArrayList的副本.底层对象很简单,包含字符串,整数,BigDecimals,Dates和DateTime对象.如何确保对新ArrayList所做的修改不会反映在旧的ArrayList中?
Person morts = new Person("whateva");
List<Person> oldList = new ArrayList<Person>();
oldList.add(morts);
oldList.get(0).setName("Mortimer");
List<Person> newList = new ArrayList<Person>();
newList.addAll(oldList);
newList.get(0).setName("Rupert");
System.out.println("oldName : " + oldList.get(0).getName());
System.out.println("newName : " + newList.get(0).getName());
Run Code Online (Sandbox Code Playgroud)
干杯,P
我有一个ArrayList自定义对象,我希望能够在屏幕上保存和恢复旋转.
我知道,这是可以做到的onSaveInstanceState和onRestoreInstanceState如果我让ArrayList自己的类,它实现了无论是Parcelable还是Serializable......但是,有没有办法做到这一点,而无需创建另一个类?
我有两个ArrayList相同大小的s.列表1由10个名称组成,列表2由其电话号码组成.
我想把名字和数字连成一个ArrayList.我该怎么做呢?
我需要知道是否将数据存储在ArrayList中,我需要获取存储在其中的值.
例如:如果我有这样的数组列表
ArrayList A = new ArrayList();
A = {"Soad", "mahran"};
Run Code Online (Sandbox Code Playgroud)
我想得到每个String元素,我该怎么做?
我尝试通过以下代码执行此操作:
package arraylist;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList S = new ArrayList();
String A = "soad ";
S.add(A);
S.add("A");
String F = S.toString();
System.out.println(F);
String [] W = F.split(",");
for(int i=0 ; i<W.length ; i++) {
System.out.println(W[i]);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我已经看到了其他几个与此类似的问题,但我真的找不到能解决问题的任何问题.
我的用例是这样的:用户最初有一个项目列表(listA).他们重新排序项目并希望保持该顺序(listB),但是,由于限制我无法在后端保持订单,因此我必须在检索后对listA进行排序.
基本上,我有2个ArrayLists(listA和listB).一个具有特定顺序的列表应该在(listB)中,另一个具有项目列表(listA).我想基于listB对listA进行排序.
arraylist ×10
java ×9
android ×2
list ×2
arrays ×1
concat ×1
concurrency ×1
deep-copy ×1
dictionary ×1
hashmap ×1
object ×1
parcelable ×1
partitioning ×1
sorting ×1