java - Java 中的 Int 和 String 数组

标签 java arrays

public class CHECK {
public CHECK(){
    String []wrkrs = {"Денис", "Саша", "Наталья", "Анатолий", "Юра", "Коля", "Катя", "Дима", "Антон","Тамара"};
    int [] wrkrsPhone = {22626,22627,22628,22629,22630,22631,22632,22633,22634,22635};
    String a = JOptionPane.showInputDialog(null, "Hello,friend!Do you wanna know, is that guy at work?Enter name:");


    if(Arrays.asList(wrkrs).contains(a)){
        JOptionPane.showMessageDialog(null, "That guy is at work!");
        JOptionPane.showMessageDialog(null, "calling " + wrkrsPhone[wrkrsPhone.toString().indexOf(a)]);
    }else{
        JOptionPane.showMessageDialog(null, "Такого сотрудника нет!");
    }
}

我有两个数组,其中包含整数和字符串。正如你所看到的,我想将字符串数组中的元素数量(例如wrkrs编号3)添加到int数组中,称为wrkrsphone。我该怎么做?我尝试了 IndexOf,但它不起作用。

我想要的输出是这样的:

Enter name:
Юра
That guy is at work!
Calling Юра + wrkrsPhone(Юра).

最佳答案

更好的解决方案是拥有一个 Worker 类,其中包含 worker 的姓名和电话号码。

然后你可以使用HashMap<String,Worker>而不是用数组来存储数据。

这使得搜索更加高效:

Map<String,Worker> workersMap = new HashMap<>();
workersMap.put ("Денис", new Worker ("Денис", 22626));
...
Worker worker = workersMap.get(a);
if (worker != null) {
    call (worker.getPhone()); // or do whatever you want to do with the phone number
}

这比 Arrays.asList(wrkrs).contains(a) 更有效,它对列表执行线性搜索。

关于java - Java 中的 Int 和 String 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35391071/

相关文章:

java - 将 Object 类作为 Java 类层次结构的根有什么好处?

java - 如何找到两个堆栈中的第一个共同出现?

arrays - 如何在 VB.NET 中声明内联数组

java - 我的java代码在线程 "main"java.lang.ArrayIndexOutOfBoundsException中抛出异常?

javascript - 除数字外,如何按字母顺序对对象数组进行排序?

java - 是否可以使用 AOP 进行 Web 应用程序许可证验证?

java - 升级到 Hibernate 4.1.3 Final 后刷新时抛出 NullPointerException

java - java中html的xsl转换

c - 在 C 中 malloc 一个巨大的数组

javascript - 数组中 2 个值之间的 "toggle"- JS