我已经制作了一张带有几何图形和for循环的桌子,用于打印出具有直角的图形名称,但我想打印出一个随机名称,该图形符合条件,如果它和#39;可能创建另一个只包含与条件匹配的数字的表。我试图使用java.util.Random
中的一些方法,但我无法找到方法。我会感谢你的帮助:
import java.util.Random;
public class rectangularFigures {
private String name;
private boolean rightAngle;
public String getName() {
return name;
}
public rectangularFigures(String name, boolean rightAngle) {
this.name = name;
this.rightAngle = rightAngle;
}
public static void main(String[] args) {
rectangularFigures[] lOFigures = new rectangularFigures[4];
lOFigures[0] = new rectangularFigures("whell", false);
lOFigures[1] = new rectangularFigures("square", true);
lOFigures[2] = new rectangularFigures("rhombus", false);
lOFigures[3] = new rectangularFigures("rectangle", true);
for (int i = 0; i < lOFigures.length; i++) {
{
if (lOFigures[i].rightAngle) {
System.out.println(lOFigures[i].name);
}
}
}
}
}
答案 0 :(得分:0)
最简单的方法是使用java流:
rectangularFigures[] onlyRightAngles = Arrays.stream(lOFigures).filter(x -> x.rightAngle).toArray(rectangularFigures[]::new);
rectangularFigures randomElement = onlyRightAngles[new Random().nextInt(onlyRightAngles.length)];
System.out.println(randomElement.name);
但是如果由于某些原因你不能使用流,我建议使用ArrayList和传统的foreach循环:
List<rectangularFigures> onlyRightAngles = new ArrayList<>();
for (rectangularFigures figure : lOFigures) {
if (figure.rightAngle) onlyRightAngles.add(figure);
}
rectangularFigures randomElement = onlyRightAngles.get(new Random().nextInt(onlyRightAngles.size()));
System.out.println(randomElement.name);
答案 1 :(得分:0)
这只是一个小例子,但可以改进:
Random r = new Random();
for (int i = 0; i < lOFigures.length; i++) {
{
int f = r.nextInt(4);
if (lOFigures[f].rightAngle) {
System.out.println(lOFigures[f].name);
}
}
}