Java中的列表与地图

JBe*_*Beg 24 java list map

我没有理解Java中的地图.什么时候建议使用Map而不是List?

提前致谢,

nohereman

Ton*_*nis 39

假设你有一群学生有姓名和学生证.如果你把它们放在一个List中,找到student_id = 300的学生的唯一方法就是一次一个地查看列表中的每个元素,直到找到合适的学生.

使用地图,您可以关联每个学生的ID和学生实例.现在你可以说,"让我的学生300",让那个学生立即回来.

需要从集合中选择特定成员时使用Map.如果没有意义,请使用List.

假设您有完全相同的学生实例,但您的任务是生成所有学生姓名的报告.你将它们放在一个列表中,因为没有必要挑选和选择个别学生,因此不需要地图.

  • +1不引用javadoc并提供说明性示例:) (3认同)
  • @ Woot4Moo这不是一个好的假设. (2认同)

Chr*_*ris 21

Java map:将键映射到值的对象.地图不能包含重复的键; 每个键最多可以映射一个值.

Java列表:有序集合(也称为序列).该接口的用户可以精确控制列表中每个元素的插入位置.用户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素.

不同之处在于它们是不同的.Map是键/值的映射,是项列表的列表.

  • 你忘记了列表可以包含重复项 (5认同)
  • @Tony:排序!=有序.对于有序集合,元素具有(y)排序(这对程序员来说是显而易见的,并且通常可以由程序员操纵).列表是有序的,例如LinkedList中的每个项目都指向下一个项目.对于已排序的集合,项目的顺序由项目的比较确定,并始终保持排序. (3认同)
  • List 是有序的吗?或者“有序”的含义与“排序”不同。不想挑剔... (2认同)