- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我正在写一份类作业。我在尝试编写一个函数来选择随机元素时遇到了困难。我尝试访问的数组存储在接口(interface)文件中。我有一个实现该接口(interface)的主文件,然后是扩展该主文件的多个文件。
我要编写并测试如何从该接口(interface)文件中选择随机元素。该文件包含许多不同的数组,但出于测试目的,我将选择姓氏[]。下面的函数编写方式会引发越界错误,但我不知道如何纠正它。
这是测试文件:
import java.util.Random;
public class MemberTest {
public static void main(String[] args) {
Random rnd = new Random();
int rndNum = rnd.nextInt();
Member m = new Member();
Student s = new Student();
Staff ss = new Staff();
Faculty f = new Faculty();
Employee e = new Employee();
Names n = new Member();
System.out.println(n.lastName[rndNum]);
System.out.println(m.toString(true));
}
}
这是实现Names.java的文件
public class Member implements Comparable<Member>, Names{
public Member() {}
// randomly fill in all data member.
public void generate() {}
public String toString() {
return toString(false);
}
public String toString(boolean ok) {
return String.format("%s%3d-%2d-%4d %15s, %-15s", ok? "Mem " : "", ID / 1000000, ID / 10000
% 100, ID % 10000, lastName, firstName );
}
//public int compareTo(Member) {}
public int compareTo(Member m) {
return ID - m.ID;
}
public String htmlRow() {
return String.format("<TR>%s</TR>", htmlColumns());
}
public String htmlColumns() {
return String.format("<TD>%3d-%2d-%4d</TD> <TD>%15s,</TD> <TD>%-15s</TD>", ID / 1000000, ID / 10000
% 100, ID % 10000, lastName, firstName );
}
protected String firstName[], lastName[];
protected int ID;
}
这是接口(interface)文件:
public interface Names {
// Fields in interface are always and implicitly public, static and final.
// All methods in interface are implicitly public and abstract.
public static final String lastName [] = {
"Abdalla", "Andres", "Anzai", "Armstrong", "Arvig", "Ash", "Baca", "Badine",
"Baehr", "Bair", "Baligad", "Barlow", "Barrett", "Becker", "Bell",
"Benbow", "Biggs", "Blevins", "Blood", "Bohan", "Bond", "Bonner",
"Bosch", "Bryson", "Buechele", "Bullis", "Burk", "Burns", "Byron",
"Calderon", "Careuthers", "Carr", "Carson", "Carter", "Castle", "Chan",
"Charney", "Christenson", "Cisneros", "Cliton", "Coldewey", "Coodey",
"Cook", "Cooper", "Coy", "Currie", "Curtis", "Dirkse", "Dirscoll",
"Dodrill", "Ehlert", "Elias", "Elliott", "Enterline", "Ericsson",
"Fernandez", "Fisher", "Flory", "Freese", "Fruzza", "Fu", "Fuhrman", "Gage",
"Garcia", "Garmon", "Giffith", "Gill", "Gillen", "Glascock", "Gomez",
"Goraya", "Greer", "Hansen", "Hartley", "Hawkins", "Hemme", "Hensley",
"Hentges", "Herron", "Hightower", "Hines", "Holloway", "Holmes",
"Issac", "Jackson", "Jagodin", "Jiang", "Johnson", "Jordan", "Jouda", "Joven",
"Kalpesh", "Katz", "Kaur", "Kegley", "Kimsey", "King", "Kohn", "Kone",
"LaCasse", "Lackey", "Lathrop", "Le", "Levy", "Lynos", "Maas", "Mackall",
"Madsen", "Magee", "Maldonado", "McDaneld", "McMillian", "McNeill",
"Meadors", "Medina", "Metz", "Millikin", "Minner", "Mondragon", "Monge", "Moore",
"Moreno", "Murkland", "Musick", "Myers", "Neal", "Ngo", "Nolan", "Nunez",
"O'Neil", "Oropeza", "Owen", "Patel", "Pfister", "Philips", "Picato",
"Porras", "Porter", "Pratt", "Pryor", "Ragle", "Rai", "Raja", "Rill",
"Roberts", "Roddy", "Rose", "Roux", "Rubio", "Ruiz", "Saito", "Samidin",
"Sampson", "Sanchez", "Scanlan", "Schmidt", "Schoberg", "Sheppard",
"Simmons", "Sison", "Smith", "Snow", "Soto", "Sozinho", "Stevens",
"Stidham", "Strange", "Sy", "Tamayo", "Taylor", "Thomas", "Tran", "Vincent",
"Walker", "Wandke", "Ward", "Warner", "Waugh", "Webb", "Wells", "White",
"Wilson", "Winther", "Wuertz", "Yong" };
最佳答案
我怀疑这里的问题是测试代码中的这些行:
Random rnd = new Random();
int rndNum = rnd.nextInt();
...
System.out.println(n.lastName[rndNum]);
现在 rnd 并不真正关心它的边界值或最大范围是多少。你需要绑定(bind)它。所以,现在 rnd.nextInt() 可以产生 100、1000、10000...
这是你需要控制的
您可以做的是将以下行重写为:
int rndNum = rnd.nextInt();
作为
int rndNum = rnd.nextInt()%lastName.length;
注意:我没有浏览完整的代码,但我看到的第一个问题。尝试一下,如果仍然存在问题,请告知。
关于java - 如何从存储在接口(interface)文件中的数组中选择随机元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54510889/
编写一个仅用于集中其他接口(interface)的接口(interface)是好的做法还是坏的做法? interface InterfaceA : InterfaceB, InterfaceC { }
有没有一种方法可以确定具体类型从任意接口(interface)列表?我知道类型转换,但我想知道所有满意的接口(interface)。 例如,给定: type Mover interface { Mo
我正在尝试制作斐波那契堆。 (在我正在上的算法课中多次提到它们,我想检查一下。)我希望堆使用任何类型的节点,所以我定义了一个 Node 接口(interface): package node type
这是我的代码: type IA interface { FB() IB } type IB interface { Bar() string } type A struct {
示例 A: // pseudo code interface IFoo { void bar(); } class FooPlatformA : IFoo { void bar() {
合并它编译的 leppies 反馈 - 但 IMO 有一些缺点,我希望编译器强制每个子类定义它们自己的 Uri 属性。现在的代码: [] type UriUserControl() = inh
我正在构建一个项目,该项目从用户那里获取一个术语,然后执行谷歌搜索并返回一个 json 格式的标题列表。 我正在使用 serpwow API 来执行谷歌搜索并试图解析响应。 但是我收到的错误是: pa
我只想在其他接口(interface)中实现某些接口(interface),我不希望它们能够被类直接继承。 提前致谢! 最佳答案 您不能在 C# 中执行此操作 - 任何类都可以实现它有权访问的任何接口
我是 Go 的新手,还有一些我还没有掌握的技巧 例如,我有一个可以这样调用的函数: myVar.InitOperation("foo",Operator.EQUAL,"bar") myVar.Init
我有一个通用接口(interface)来描述对输出流的访问,如下所示: interface IOutput { function writeInteger(aValue:Int):Void;
我正在做一个项目,我想通过某种接口(interface)(最好是 USB)将光电探测器电路安装到计算机上。但是,由于我是新手,所以我不知道应该朝哪个方向处理这个问题。假设我有一个带有 USB 连接的光
背景 我正在尝试创建一个简单的应用程序,以真正理解DDD + TDD + etc的整个堆栈。我的目标是在运行时动态注入DAL存储库类。这让我 域和应用程序服务层可测试。我打算用“穷人的DI”来完成 现
在 Java 中,接口(interface)扩展接口(interface)是完全合法的。 UML 中的这种关系看起来像“扩展”关系(实线、闭合、未填充的箭头)还是“实现”关系(虚线、闭合、未填充的箭头
我想创建一个具有相等和比较函数默认实现的接口(interface)。 如果我从类型 IKeyable 中删除所有内容除了Key成员,只要我不添加默认实现,它就是一个有效的接口(interface)。从
COM 中的双接口(interface)是能够通过 DispInterface 或 VTable 方法访问的接口(interface)。 现在有人可以告诉我这两种方法之间到底有什么区别吗? 我认为 V
我有一个类方法,它返回一个可以迭代的员工列表。返回列表的最佳方式是什么?通常我只返回一个 ArrayList。然而,据我了解,界面更适合这种类型的操作。哪个是最好使用的界面?另外,为什么返回接口(in
我想从包装类外部实例化一个内部非静态接口(interface)。 这可能吗? 考虑以下代码: shared class AOuterClass() { Integer val = 3; shared
我为一个类编写了一个接口(interface),如下所示: public interface IGenericMultipleRepository { Lazy> addresses { ge
我是 UML 的初学者,现在我正在创建一个序列图,问题是我想根据用户输入实现 DAO 接口(interface)。如何在时序图中正确绘制以实现接口(interface)。 最佳答案 您不会在 SD 上
要使用 jsr 303 验证创建有条件验证的组,请将接口(interface)类传递给注释,如下所示: @NotEmpty (groups={UpdateValue.class}) 我有很多不同的接口
我是一名优秀的程序员,十分优秀!