如何通过合并特定值来创建新数组

时间:2015-10-08 13:50:13

标签: java arrays

我创建了两个包含值的数组。

select UserId, UserCountry, COUNT(UserCountry) FROM Login WHERE Date = yourdate GROUP BY UserCountry, UserId HAVING COUNT(UserCountry) = 1

我想创建一个从两个数组中获取特定值的第三个数组。

String[] array1 = {"ab", "bc", "ca"};
String[] array2 = {"zy", "yx", "xz"};

有没有一种方法可以在创建第三个数组时从其他数组中提取特定值?

3 个答案:

答案 0 :(得分:0)

在Java中

您需要定义一个界面,通过该界面决定哪个项目是特定的,哪个不是。

public interface SpecificItemDetect{
    boolean isSpecific(String item);
}

现在,您可以使用此代码创建第三个数组。

List<String> third = new ArrayList<String>();

for (String item : Array1){
    if(detector.isSpecific(item)){
        third.add(item);
    }
}

for (String item : Array2){
    if(detector.isSpecific(item)){
        third.add(item);
    }
}

// Now, you may want to convert the list to array.
String[] thirdArray = new String[third.size()];
third.toArray(thirdArray);

注意: detector在此示例中是实现接口SpecificItemDetect的类的实现。

在JavaScript中

在JavaScript中,您需要一个函数而不是该接口。像这样:

var filter = function(item){
    if(/* item is specific */){
        return true;
    } else {
        return false;
    }
}

并创建第三个数组:

var third = [];

for (var i = 0, len = Array1.length; i < len; i += 1){
    if(filter(Array1[i])){
        third.push(item);
    }
}

for (var i = 0, len = Array2.length; i < len; i += 1){
    if(filter(Array2[i])){
        third.push(item);
    }
}

答案 1 :(得分:0)

您无法访问存储数组值的内存。这意味着,您需要遍历数组名称。现在,使用数组名称,您可以引用您想要的特定值&quot; pluck&#39;。你对此有什么规定吗?

答案 2 :(得分:0)

好吧,当你说出具体的价值观时,我并不完全确定你的意思,但如果你的意思是你所展示的价值,那么你就可以这样做了

String[] array1 = {"ab", "bc", "ca"};
String[] array2 = {"zy", "yx", "xz"};
List<String> list1 = new ArrayList<String>();
String[] array3 = new String[list1.size()]; //Skip if you don't need array

list1.add(array1[0]);
list1.add(array1[2]);
list1.add(array2[1]);


list1.toArray(array3); //Skip if you don't need array

就像abforce所说的那样,但如果你只是想知道如何使用.add方法,那就是你需要做的。但是如果你想在&#34;特定值&#34;你需要改变然后界面会好得多。如果您需要在将来更改值,此代码是简单的但不是非常灵活。