可变数组合并到另一个数组的数组

时间:2017-03-01 17:47:07

标签: ios objective-c nsmutablearray

我有两个可变数组:

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

2 个答案:

答案 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 使用

插入 array2
var 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))