是否可以编写一个代码块来检查特定类型的特定类型的所有对象/变量?
(不为每个创建if语句)
然后将其设置为true或false。
如果您有3个变量并且......
if(a=0||b=0||c=0){
//set any variable equal to zero to 4
}
执行评论中描述的操作
或者,复杂的例子,4个整数类型的arraylists:
List<Integer> even = new ArrayList<Integer>(), //positive even ints
odd = new ArrayList<Integer>(), //positive odd ints
negaodd = new ArrayList<Integer>() //negative even ints
negaeven = new ArrayList<Integer>(); //negative odd ints
然后像:
if("AnyArray".isEmpty()){
whatever-array-is-being-tested/tried = null;
}
因此,如果任何数组最终为空,则代替[],它们将返回“null”。
答案 0 :(得分:3)
List<Integer> oddNumbers = filter(odd, asList(1, 2, 3, 4, 5));
请点击此处查看更多可能的想法:What is the best way to filter a Java Collection?
<强>声明强> 有时候过度使用这种东西(当一个简单的循环就足够了)比代码更混淆代码,所以要小心。
答案 1 :(得分:1)
您可以使用数组或列表以及辅助方法来实现。
int[] intArray = { a, b, c };
setZeroes(intArray);
public void setZeroes(int[] a) {
for (int i = 0; i < a.length; i++) {
a[i] = (a[i] == 0) ? a[i] : 4;
}
}
请注意,这不会将a
,b
或c
设置为0,而是将数组中的元素设置为。
但是......也许它们应该只是数组(或List)的元素。那是我的预感。
您可以使用列表列表执行相同的操作。
List<List<Integer>> listOfLists = new ArrayList<List<Integer>>();
listOfLists.add(listA);
listOfLists.add(listB);
listOfLists.add(listB);
setListsToNull(listArray);
public void setListsToNull(List<List<Integer>> a) {
for (int i = 0; i < a.length; i++) {
List<Integer> thisList = a.get(i);
a.set(i, thisList.isEmpty() ? null : thisList);
}
}
我通常使用if语句代替?
运算符,但你不想要ifs ....
您可以轻松地将这两种方法设为通用(您必须在第一个示例中使用对象),但我们会将其留给您....