当前位置: 首页 > 知识库问答 >
问题:

如何在表格中找到与条件匹配的随机元素?

林国安
2023-03-14

我已经制作了一个带有几何图形和for循环的表格,用于打印出直角图形的名称,但我想为这个图形打印一个符合条件的随机名称,如果可能的话,还可以创建另一个表格,其中只包含符合条件的图形。我试图使用java中的一些方法。util。随机,但我不知道怎么做。我将感谢你的帮助:

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);
                }
            }
        }
    }
}

共有2个答案

柳景胜
2023-03-14

这只是一个小例子,但可以改进:

    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);
            }
        }
    }
周弘毅
2023-03-14

最简单的方法是使用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);

但如果由于某些原因不能使用streams,我建议使用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);
 类似资料:
  • 问题内容: 我想知道是否有一种已知的,内置的/优雅的方法来找到匹配给定条件的JS数组的第一个元素。AC#等效项为List.Find。 到目前为止,我一直在使用这样的两功能组合: 然后我可以使用: 但是,既然ECMAScript中有[太多的函数式数组方法,也许已经有这样的东西了?我想很多人必须一直执行这样的事情… 问题答案: 从ES6开始,存在数组的本机方法。一旦找到第一个匹配项并返回值,此操作将停

  • 我想知道是否有一种已知的、内置的/优雅的方法来查找匹配给定条件的JS数组的第一个元素。C#的等价物将是list.find。 到目前为止,我一直在使用这样的两个功能组合: 然后我可以使用: 但是由于ECMAScript中有这么多函数式数组方法,也许已经有类似的东西了?我想很多人都要一直在做这样的事情...

  • 问题内容: 这应该非常简单。如果我有这样的字符串: 那么通常会采用什么方式来获取与此模式匹配的文件列表?(例如,它应该匹配但不匹配 我看了一下,看起来像是对的野兽,但是我不确定如何使用它在相对目录路径中查找文件。 我想我可以查找ant的源代码,因为它使用了通配符语法,但是我必须在这里遗漏一些显而易见的内容。 (编辑:上面的示例只是一个示例案例。我正在寻找一种在运行时解析包含通配符的常规路径的方法。

  • 问题内容: 假设我有一个s的列表: 我想返回满足一定条件的元素的列表,例如: 在for中 返回元素的子元素的Python方法是什么? 天真的方法: 有没有一种简单的方法可以执行此操作,也许具有列表理解或函数,而没有临时的? 问题答案: 使用清单理解, 或者您可以使用也, 您实际上可以使用Python的真实语义编写相同的条件,例如 另外,您也可以使用功能与你的,像这样的

  • 开始时,所有标志均为0。我使用while循环来检查是否至少有一个元素的标志为0: 如果返回,那么我将继续处理我的列表: 实际上,我想在迭代my_list时移除元素,但不允许在迭代时移除项。 由于我无法在迭代时删除元素,所以我发明了这些标志。但是包含许多项,循环在每个循环中读取所有项,这会消耗大量时间!你有什么建议吗?

  • 我试图让脚本在第4页中搜索一个值,在其余的表中搜索电子表格的范围“A2”,然后进行匹配。它跳到那张纸上 让我的代码在所有工作表中循环 感谢我能得到的所有帮助(: 第一次使用谷歌表格...