A. java中Map类有什么作用,具体怎么用呢
map是以键值对来存储数据的,例如:
Map map = new HashMap();
map.put("移动","10086");
String c = map.get("移动");
结果c="10086”;
简单来说,map就像我们手机的电话本,用map.put("移动","10086"),就是在电话本保存了移动的电话,然后当你想拿移动的电话时候就用String c = map.get("移动");就可以拿到电话号码了。其实学习结合生活实际比较容易理解,也学得快。
B. 谁能说说Java中的Set List Map存储方式个各有什么不同
List接口对Collection进行了简单的扩充,它的具体实现类常用的有ArrayList和LinkedList。你可以将任何东西放到一个List容器中,并在需要时从中取出。ArrayList从其命名中可以看出它是一种类似数组的形式进行存储,因此它的随机访问速度极快,而LinkedList的内部实现是链表,它适合于在链表中间需要频繁进行插入和删除操作。在具体应用时可以根据需要自由选择。前面说的Iterator只能对容器进行向前遍历,而ListIterator则继承了Iterator的思想,并提供了对List进行双向遍历的方法。
Set接口也是Collection的一种扩展,而与List不同的时,在Set中的对象元素不能重复,也就是说你不能把同样的东西两次放入同一个Set容器中。它的常用具体实现有HashSet和TreeSet类。HashSet能快速定位一个元素,但是你放到HashSet中的对象需要实现hashCode()方法,它使用了前面说过的哈希码的算法。而TreeSet则将放入其中的元素按序存放,这就要求你放入其中的对象是可排序的,这就用到了集合框架提供的另外两个实用类Comparable和Comparator。一个类是可排序的,它就应该实现Comparable接口。有时多个类具有相同的排序算法,那就不需要在每分别重复定义相同的排序算法,只要实现Comparator接口即可。集合框架中还有两个很实用的公用类:Collections和Arrays。Collections提供了对一个Collection容器进行诸如排序、复制、查找和填充等一些非常有用的方法,Arrays则是对一个数组进行类似的操作。
Map是一种把键对象和值对象进行关联的容器,而一个值对象又可以是一个Map,依次类推,这样就可形成一个多级映射。对于键对象来说,像Set一样,一个Map容器中的键对象不允许重复,这是为了保持查找结果的一致性;如果有两个键对象一样,那你想得到那个键对象所对应的值对象时就有问题了,可能你得到的并不是你想的那个值对象,结果会造成混乱,所以键的唯一性很重要,也是符合集合的性质的。当然在使用过程中,某个键所对应的值对象可能会发生变化,这时会按照最后一次修改的值对象与键对应。对于值对象则没有唯一性的要求。你可以将任意多个键都映射到一个值对象上,这不会发生任何问题(不过对你的使用却可能会造成不便,你不知道你得到的到底是那一个键所对应的值对象)。Map有两种比较常用的实现:HashMap和TreeMap。HashMap也用到了哈希码的算法,以便快速查找一个键,TreeMap则是对键按序存放,因此它便有一些扩展的方法,比如firstKey(),lastKey()等,你还可以从TreeMap中指定一个范围以取得其子Map。键和值的关联很简单,用pub(Object key,Object value)方法即可将一个键与一个值对象相关联。用get(Object key)可得到与此key对象所对应的值对象。
C. 在Java中map类的主要作用
MAP是个接口,主要用途就是存储键值对,键是不可重复的,可以存储object类型,值是可重复的。用途,实现类HASHMAP,TREEMAP可以用来实现如同javabean一样的存储功能,MAP的用法更灵活。
D. java map存储的是键顺序
不知道楼主指的顺序是什么。使用Map的,向来只关心灶源键羡肢值,只要有key,就能取出value;如果没有key,也无法取出value,从来不会关心顺序问题,也根本没有意义。
如果楼主想通过循环取值,建议不要用map了,这和map的初隐派态衷不符。楼主可以用List来实现。
E. 怎么判断key是否在map中存在java
map.containsKey 判断是否存在key ,建议常常看java API文档.
F. java集合定义map
Map接口映射唯一键的值。一个关键是,要使用在日后检索值对象。
给定一个键和一个值,可以在一个Map对象存储的值。后的值被存储时,可以使用它的键检索。
抛出一个NoSuchElementException异常,是因为调用映射不存在的项目。
当一个对象是在映射上的元素不兼容抛出一个ClassCastException异常。
NullYiierException异常被抛出,如果试图使用一个空对象。
当试图改变一个不可修改的Map,则抛出一个UnsupportedOperationException异常。
SN
方法与描述
void clear( )
移除调用映射的所有键/值对。
boolean containsKey(Object k)
返回true如果调用映射包含k作为重点。否则,返回false。
boolean containsValue(Object v)
返回true如果映射包含v作为一个值。否则,返回false。
Set entrySet( )
返回一组包含在地图中的条目。该集合包含类型Map.Entry对象。这种方法提供了一组视图调用地图。
boolean equals(Object obj)
如果obj是一个Map返回true,并且包含相同的条目。否则,返回false。
Object get(Object k)
返回与k关联的值。
int hashCode( )
返回调用映射的哈希代码。
boolean isEmpty( )
如果调用映射为空返回true。否则,返回false。
Set keySet( )
返回一个集,其中包含调用映射的键。这种方法提供了一组视图中调用映射的键。
Object put(Object k, Object v)
放入调用映射中的条目,覆盖与键相关联的任何一个值。键和值分别为k和v。如果不已经存在键返回null。否则,将返回关联键的前一个值。
void putAll(Map m)
把从m所有条目放进入此映射。
Object remove(Object k)
删除其关键字等于k中的条目。
int size( )
返回在映射上的键/值对的数目。
Collection values( )
返回包含在映射中的值的集合。这种方法提供了一个集合视图在映射中的值。
例子:
映射有其不同的类实现,比如HashMap。下面是例子来说明映射功能:
Map Elements
{Mahnaz=31, Ayan=12, Daisy=14, Zara=8}
G. java中几种Map在什么情况下使用
HashMap 散列表 插入和查询的开销是固定的; 可以通过构造方法设置容量和负载因子,调整性能默认选择
LinkedHashMap 链表
取得元素的顺序是其插入次序,或者最近最少使用次序;插入时比HashMap略慢,但迭代时更快
TreeMap 红黑树 总是保证有序; 可以通过subMap()方法返回一个子树
WeakHashMap 弱键映射,允许释放映射所指向的对象
ConcurrentHashMap 线程安全,不涉及同步加锁
IdentityHashMap 用 == 代替 equals() 进行比较; 插入操作不会随着Map尺寸变大而明显变慢