如何在java中将'List'更改为'List of tuple'
我正在使用下面的函数将如何在java中将'List'更改为'List of tuple',java,arrays,list,data-structures,tuples,Java,Arrays,List,Data Structures,Tuples,我正在使用下面的函数将列表的子列表转换为0,其余元素转换为1,但我正在尝试将数据结构更改为元组列表 例如,该函数为输入[1,2,3,5,10]提供到[0,0,0,1,1]。如何转换此数据结构以获得如下输出:[(0,1)、(0,2)、(0,3)、(1,5)、(1,10)]?或者,如果可能的话,可以使用另一个类似的数据结构?类似于两个元素数组的列表 public static void main(String[] args) { int[] arr = { 1, 8, 1, 9, 10 };
列表的子列表
转换为0
,其余元素转换为1
,但我正在尝试将数据结构更改为元组列表
例如,该函数为输入[1,2,3,5,10]
提供到[0,0,0,1,1]
。如何转换此数据结构以获得如下输出:[(0,1)、(0,2)、(0,3)、(1,5)、(1,10)]
?或者,如果可能的话,可以使用另一个类似的数据结构?类似于两个元素数组的列表
public static void main(String[] args) {
int[] arr = { 1, 8, 1, 9, 10 };
// assume arr.length >= 2
boolean asc = arr[1] - arr[0] == 1;
for (int i = 1; i < arr.length - 1; i++) {
if (arr[i + 1] - arr[i] == 1) {
arr[i] = 0;
asc = true;
} else {
if (asc) {
asc = false;
arr[i] = 0;
}
else {
arr[i] = 1;
}
}
}
arr[arr.length - 1] = asc ? 0 : 1;
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
publicstaticvoidmain(字符串[]args){
int[]arr={1,8,1,9,10};
//假设arr.length>=2
布尔asc=arr[1]-arr[0]==1;
对于(int i=1;i
您可以创建一个类元组来保存您的值
public class Tuple {
int first;
boolean second;
public Tuple(int first, boolean second) {
this.first = first;
this.second = second;
}
@Override
public String toString() {
return String.format("(%d, %b)", first, second);
}
}
然后稍微更改代码以使用它
final int[] arr = { 1, 8, 1, 9, 10 };
Tuple[] result = new Tuple[arr.length];
boolean asc = arr[1] - arr[0] == 1;
result[0] = new Tuple(arr[0], asc);
for (int i = 1; i < arr.length - 1; i++) {
if (arr[i + 1] - arr[i] == 1) {
asc = true;
} else {
if (asc) {
asc = false;
}
}
result[i] = new Tuple(arr[i], asc);
}
result[arr.length - 1] = new Tuple(arr[arr.length - 1], asc);
for (int i = 0; i < arr.length; i++) {
System.out.println(result[i]);
}
final int[]arr={1,8,1,9,10};
元组[]结果=新元组[arr.length];
布尔asc=arr[1]-arr[0]==1;
结果[0]=新元组(arr[0],asc);
对于(int i=1;i
这个输出
(1,假)(8,假)
(1,假)
(9,正确)
(10,正确)
请注意,for循环中的if/else可能可以改进,但因为它对答案不是必需的,我自己也没有这样做过您有两个选项,要么创建一个新类,包含两个字段以保存两个值,要么使用不同库中的成对实现之一。也许您甚至可以创建一个两个元素数组的
列表
来实现同样的效果。您能帮我选择这个选项吗:两个元素数组的列表