我想为我的集合实例添加我自己的唯一标识符。 哈希码可以唯一地标识一个集合,但这不是我想要的。像这样的东西..
List<Integer> classOneStudentIds = Arrays.asList(123,135);
classOneStudentIds.name = "classOne";
List<Integer> classTwoStudentIds = Arrays.asList(145,138);
classTwoStudentIds.name = "classTwo";
这似乎不可能......
当代码是非递归的并且主程序知道列表代表什么时,不是很相关。然而,对于递归解决方案,我认为集合能够根据程序员的命名来识别自身是有帮助的。
对于以下汉诺塔解决方案的代码片段,不必使用 hashCode,而是使用与当前用例相关的有意义的名称会有所帮助。
Integer elem = pegOne.removeFirst();
System.out.println("Move element " + elem + " from " +
pegOne.hashCode());
pegThree.add(elem);
System.out.println(" to " + pegThree.hashCode());
有没有办法让集合识别自己?
最佳答案
直接不可能,但是有一个有意义的对象。
class ListWithId {
String identifier;
List<Integer> classStudentIds;
// more properties you want to add
}
关于Java:可以命名集合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48594860/