Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将ID列表与其对应的对象相匹配_Java_Dictionary_Arraylist - Fatal编程技术网

Java 将ID列表与其对应的对象相匹配

Java 将ID列表与其对应的对象相匹配,java,dictionary,arraylist,Java,Dictionary,Arraylist,我有一个字典中的单词列表和字典中的单词列表。当然,将BossID与Boss匹配并返回“Dictionary WhoIsMyBoss” 我不知道从哪里开始用Java 就这两个列表而言,我们假设老板与EMP的比例为一比多。BOSSID是从1-n递增的 我想我会用我不识字的Java做以下事情 Dictionary<BossName, EmpName> WhoIsMyBoss; ArrayList<Integer> AnotherListOfBosses; private int

我有一个
字典中的单词列表
字典中的单词列表
。当然,将BossID与Boss匹配并返回“Dictionary WhoIsMyBoss”

我不知道从哪里开始用Java

就这两个列表而言,我们假设老板与EMP的比例为一比多。BOSSID是从1-n递增的

我想我会用我不识字的Java做以下事情

Dictionary<BossName, EmpName> WhoIsMyBoss;
ArrayList<Integer> AnotherListOfBosses;
private int Boss;
for (String EmpName: ListOfEmps)
        Boss = ListOfEmps.get(EmpName)
        WhoIsMyBoss.put(ListofBosses(Boss) , EmpName);
        AnotherListOfBosses.add(Boss);
}
for(int Boss: AnotherListOfBosses)
{
     ListOfBosses.remove(Boss)
}
WhoIsMyBoss字典;
ArrayList另一个Boss列表;
私人内特老板;
for(字符串EmpName:ListOfEmps)
Boss=ListOfEmps.get(EmpName)
WhoIsMyBoss.put(Boss(Boss)列表,EmpName);
另一个Boss列表。添加(Boss);
}
对于(int Boss:另一个Boss列表)
{
Boss列表。移除(Boss)
}
这应该会给我留下一份老板和员工的名单以及 一个没有相应员工的博客列表


看起来怎么样?字典是正确的收藏吗?任何改进都将不胜感激。

字典
已经过时,因此您应该使用某种
映射
(通常是
哈希映射
)。此外,调用变量
…List
会产生很大的误导,因为有一种非常常见的集合类型称为
List
,并且它会做一些不同的事情(它表示排序,但不表示映射),所以您可能也应该调用变量
…map

因为一个老板可以有几个员工,所以映射应该是从一个员工到另一个老板,而不是从另一个员工到另一个老板(密钥总是先命名)。相应的
put
也是错误的方式


缺少声明和缺少的
get()
也存在一些其他问题,但是编译器应该直接解决这些问题。

字典
已经过时,因此您应该使用某种
映射
(通常是
哈希映射
)。此外,调用变量
…List
会产生很大的误导,因为有一种非常常见的集合类型称为
List
,并且它会做一些不同的事情(它表示排序,但不表示映射),所以您可能也应该调用变量
…map

因为一个老板可以有几个员工,所以映射应该是从一个员工到另一个老板,而不是从另一个员工到另一个老板(密钥总是先命名)。相应的
put
也是错误的方式

缺少声明和一个缺少的
get()
,还有一些其他问题,但是编译器应该在这方面为您提供帮助

如有任何改进,将不胜感激

您需要学习标识符的Java风格规则

  • 类名是以大写字符开头的大小写
  • 方法名称以及变量、参数和属性的名称以小写字符开头
  • 包名称都是小写的
  • 常量(例如,
    静态final
    变量)名称均为大写,并以下划线作为名称分隔符
如有任何改进,将不胜感激

您需要学习标识符的Java风格规则

  • 类名是以大写字符开头的大小写
  • 方法名称以及变量、参数和属性的名称以小写字符开头
  • 包名称都是小写的
  • 常量(例如,
    静态final
    变量)名称均为大写,并以下划线作为名称分隔符

正如Kilian Foth所提到的,你应该使用地图而不是字典。此外,在Java中,约定是以小写字母和大写字母开头变量名

你说过名字是字符串,ID是整数

public class BossExample {
  // Key: Boss-ID, Value: Boss name
  private Map<Integer, String> mapOfBosses = new HashMap<Integer, String>();

  // Key: Emp name, Value: Boss-ID
  private Map<String, Integer> mapOfEmps = new HashMap<String, Integer>();

  // Constructor fills the maps
  public BossExample() {
    // ...
  }

  // Returns a mapping from Emp name to Boss name
  public Map<String, String> getEmpToBossMap() {
    final Map<String, String> empToBossMap = new HashMap<String, String>();

    // Iterate through mapOfEmps via entrySet giving you key and value 
    // at the same time
    for(Map.Entry<String, Integer> empEntry : mapOfEmps.entrySet()) {
      // Put the Emp name as key and the retrieved Boss name as a value into 
      // the result map.
      empToBossMap.put(empEntry.getKey(), mapOfBosses.get(empEntry.getValue()));
    }

    return empToBossMap;
  }
}
公共类BossExample{
//键:Boss ID,值:Boss name
private Map MapOfBoss=新HashMap();
//键:Emp名称,值:Boss ID
私有映射mapOfEmps=newhashmap();
//构造函数填充映射
公共BossExample(){
// ...
}
//返回从Emp名称到Boss名称的映射
公共映射getEmpToBossMap(){
最终映射empToBossMap=newhashmap();
//通过提供键和值的entrySet在mapOfEmps中迭代
//同时
对于(Map.Entry-empEntry:mapOfEmps.entrySet()){
//将Emp名称作为键,将检索到的Boss名称作为值放入
//结果图。
empToBossMap.put(empEntry.getKey(),mapofBoss.get(empEntry.getValue());
}
返回empToBossMap;
}
}

正如Kilian Foth所提到的,你应该使用地图而不是字典。此外,在Java中,约定是以小写字母和大写字母开头变量名

你说过名字是字符串,ID是整数

public class BossExample {
  // Key: Boss-ID, Value: Boss name
  private Map<Integer, String> mapOfBosses = new HashMap<Integer, String>();

  // Key: Emp name, Value: Boss-ID
  private Map<String, Integer> mapOfEmps = new HashMap<String, Integer>();

  // Constructor fills the maps
  public BossExample() {
    // ...
  }

  // Returns a mapping from Emp name to Boss name
  public Map<String, String> getEmpToBossMap() {
    final Map<String, String> empToBossMap = new HashMap<String, String>();

    // Iterate through mapOfEmps via entrySet giving you key and value 
    // at the same time
    for(Map.Entry<String, Integer> empEntry : mapOfEmps.entrySet()) {
      // Put the Emp name as key and the retrieved Boss name as a value into 
      // the result map.
      empToBossMap.put(empEntry.getKey(), mapOfBosses.get(empEntry.getValue()));
    }

    return empToBossMap;
  }
}
公共类BossExample{
//键:Boss ID,值:Boss name
private Map MapOfBoss=新HashMap();
//键:Emp名称,值:Boss ID
私有映射mapOfEmps=newhashmap();
//构造函数填充映射
公共BossExample(){
// ...
}
//返回从Emp名称到Boss名称的映射
公共映射getEmpToBossMap(){
最终映射empToBossMap=newhashmap();
//通过提供键和值的entrySet在mapOfEmps中迭代
//同时
对于(Map.Entry-empEntry:mapOfEmps.entrySet()){
//将Emp名称作为键,将检索到的Boss名称作为值放入
//结果图。
empToBossMap.put(empEntry.getKey(),mapofBoss.get(empEntry.getValue());
}
返回empToBossMap;
}
}

我猜你指的是地图,而不是surfasb从老板到员工的地图。太棒了。当我开始在Eclipse中输入字典并开始阅读工具提示时,我注意到了它。不过,我应该能够弄清楚这些声明。是的,那些不是真名。我只是把它们放在那里,让它变得更美