我想编写java程序来合并第三个数组中的两个数组。还要按升序对第三个数组进行排序。但是不允许重复数字。我可以写这个程序。这就是我到目前为止所做的......
public class combine {
public static void main(String[]args){
int[]a = {1, 2, 3};
int[]b = {4, 5, 6};
// int[]c = new int[10];
int[]c = new int[a.length+b.length];
int i;
for(i=0; i<a.length; i++)
c[i] = a[i];
for(int j=0; j<b.length; j++)
c[i++]=b[j];
for(int k=0; k<c.length; k++)
System.out.print(c[k]+" ");
}
}
答案 0 :(得分:2)
首先创建数组:
var basicConfig = {
method: 'GET',
url: myURL,
headers: {
'Authorization': 'Basic ' + basicKey,
'Accept': "application/json",
'Content-Type': 'application/x-www-form-urlencoded'
},
data: requestPayload
}
$http(basicConfig).success(function(data, status){
console.log(status);
}).error(function(data, status){
console.log(status);
});
将数组转换为列表以便更简单地处理:
Integer[] a = new Integer[]{8, 7, 6, 5, 4, 3, 2, 1, 0};
Integer[] b = new Integer[]{0, 1, 1, 2, 3, 5, 8, 13, 21};
合并列表:
List<Integer> aList = new ArrayList<>(Arrays.asList(a));
List<Integer> bList = Arrays.asList(b);
按升序对列表进行排序:
aList.addAll(bList);
将列表转换为集合(每个定义的集合没有重复值):
aList.sort(new Comparator<Integer>() {
@Override
public int compare(Integer integer, Integer t1) {
return integer.compareTo(t1);
}
});
打印合并的排序数组,不带重复值:
Set<Integer> uniqueList = new HashSet<>(aList);
Reuslt:
System.out.println(uniqueList);
答案 1 :(得分:1)
尝试以下代码,在两个数组中添加值以设置删除重复项,并使用树集可以获得顺序,然后根据需要填充任何ds
public static void main(String args[]) {
Set<Integer> mySet = new TreeSet<Integer>();
int[] a = { 1, 2, 3, 4 };
int[] b = { 3, 5, 4, 6 };
for (int i : a) {
mySet.add(i);
}
for (int i : b) {
mySet.add(i);
}
System.out.println(mySet);
}
输出: [1,2,3,4,5,6]
答案 2 :(得分:0)
您可以将两个数组中的所有数字(或数字)添加到TreeSet中,然后继续调用Error : Mapping a variable to y and also using stat="bin".
With stat="bin", it will attempt to set the y value to the count of cases in each group.
This can result in unexpected behavior and will not be allowed in a future version of ggplot2.
If you want y to represent counts of cases, use stat="bin" and don't map a variable to y.
If you want y to represent values in the data, use stat="identity".
See ?geom_bar for examples. (Defunct; last used in version 0.9.2)
并将其添加到结果数组,然后mySet.first()
直到该集合为止空。因为它是一个TreeSet,所以重复获取和删除集合中的第一个(也就是最低的)元素将产生升序。
你可以做的另一件事是对两个数组进行排序,然后使用一轮合并排序来组合数组,并检查前面插入的数字是否等于要插入的数字,不做任何事情并跳过数字。
答案 3 :(得分:0)
你可以在临时数组中合并a和b,然后使用Arrays.sort(temp);并在temp中进行线性搜索,只复制c
中的唯一条目答案 4 :(得分:0)
您可以使用已排序且没有重复值的TreeSet
。这是一个例子:
Integer[] numbers1 = { 7, 7, 8, 9, 10, 8, 8, 9, 6, 5, 4 };
Integer[] numbers2 = { 12, 7, 4, 6, 10, 8, 2, 9, 5, 5, 3 };
List<Integer> list1 = Arrays.asList(numbers1);
List<Integer> list2 = Arrays.asList(numbers2);
Set<Integer> set = new TreeSet<Integer>(list1);
set.addAll(new TreeSet<Integer>(list2));
System.out.println(set.toString());
这是工作ideone。
结果:[2, 3, 4, 5, 6, 7, 8, 9, 10, 12]
注意:如果您无法使用Integer[]
但仅int[]
,则必须先使用<Property Id="INSTALLLOCATION" Secure="yes" />
<Property Id="TARGETDIR" Secure="yes" />
<CustomAction Id='DIRCA_TARGETDIR' Property='TARGETDIR' Value='[ProgramFilesFolder]\[ProductName]' Execute='firstSequence' />
<Directory Id='TARGETDIR' Name='SourceDir'>
<Component Id='com_dir_TARGETDIR' Guid='B2F279CF-2E8B-4C04-A5EE-3246B3EEC424' Transitive='no'>
<CreateFolder Directory='TARGETDIR' />
<RemoveFolder Id='TARGETDIR' On='uninstall' />
</Component>
<Directory Id="INSTALLLOCATION" Name="Client">
<Component Id="cmpB62155E45B33F7E9F085A10EF7EC9B36A" Guid="75241554-2B0E-41B8-8B1F-2A627FB00B83">
<File Id="fil7D5D59A00555465436A47FEE7D749560A" KeyPath="yes" Source="$(var.WarDir)\someWar.war" />
</Component>
进行转换。 StackOverflow上已有多个问题。