我有两个可变数组:
NSMutableArray
array1 ; [含1,2,3,4,5]
NSMutableArray
array2 ; [含9,8,7]
我想在3到4之间将 array2 值插入 array1 ,结果可能是:
array1 = [1,2,3,9,8,7,4,5]
我想再次从array1中删除array2值,结果可能是:
array1 = [1,2,3,4,5]
请告诉我一些实现目标的最佳方法。
以下链接无效: Copy object at specific index of mutable array to the end of another array
答案 0 :(得分:3)
根据您的要求,您可以将第一个数组拆分为2个部分,并将所有3个数组合并到最终数组以获得预期输出。
请检查此代码:
NSMutableArray *mutArray1 = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
NSMutableArray *mutArray2 = [[NSMutableArray alloc] initWithObjects:@"9",@"8",@"7", nil];
//You cna change index based on your requirement.
int indexToSpit = 3;
//Split your first array into 2 part.
NSArray *arayFirstPart = [mutArray1 subarrayWithRange:NSMakeRange(0, indexToSpit)];
NSArray *araySecondPart = [mutArray1 subarrayWithRange:NSMakeRange(indexToSpit, mutArray1.count-indexToSpit)];
//Merge all 3 array into single array
NSMutableArray *finalArray = [[NSMutableArray alloc] initWithArray:arayFirstPart];
[finalArray addObjectsFromArray:mutArray2];
[finalArray addObjectsFromArray:araySecondPart];
NSLog(@"Combine Array : %@",finalArray);
//For remove
[finalArray removeObjectsInArray:mutArray2];
NSLog(@"Split Array : %@",finalArray);
希望这会对你有所帮助。
答案 1 :(得分:0)
private void loadData() {
ProgressDialog progressDialog = new ProgressDialog(getActivity());
progressDialog.setMessage("Loading...");
progressDialog.show();
StringRequest stringRequest = new StringRequest(Request.Method.GET, URL_DATA, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray array = jsonObject.getJSONArray("data");
for(int i =0;i<array.length();i++)
{
JSONObject o = array.getJSONObject(i);
-->**Cannot Resolve Symbol ListItem ** ListItem item = new ListItem(
o.getString("_id"),
o.getString("store_textposition")
);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
RequestQueue requestQuene = Volley.newRequestQueue(getActivity());
requestQuene.add(stringRequest);
}
在索引3 使用
插入 array2var array1 = [1,2,3,4,5]
var array2 = [9,8,7]
删除你可以使用
array1.insertContentsOf(array2, at: 3)
print(array1)
这将是无序数组,因为我们正在将数组转换为Set以进行减法。
或者您可以尝试
array1 = Array(Set(array1).subtract(array2))