您的位置:

javamap集合,javamap集合为什么不可以用foreach遍历

本文目录一览:

在java的Map集合中,怎样更改value的值?

map集合没有专门更改value的方法,更改value的方法就是map.put(key,value),更改就是直接替换,比如想改变key是"1",value是"一"的组合,就是map.put("1","壹"),直接替换就行。

import java.util.HashMap;

public class Demo {

public static void main(String[] args) {

HashMapString, Integer map = new HashMapString, Integer();

map.put("张三", 89);

map.put("赵四", 100);

System.out.println(map);

if (map.containsKey("张三")) {//判断如果存在 key ,就修改value

map.put("张三", 98);//修改

}

System.out.println("------分割线------");

System.out.println(map);

}

avaMap集合

Map集合没有继承Collection接口,,Map中不能包含相同的key值,每个key只能影射一个相同的value。key值还决定了存储对象在映射中的存储位置。

但不是key对象本身决定的,而是通过散列技术进行处理,可产生一个散列码的整数值,散列码通常用作一个偏移量,该偏移量对应分配给映射的内存区域的起始位置,从而确定存储对象在映射中的存储位置。Map集合包括Map接口以及Map接口所实现的类。

以上内容参考:百度百科-JavaMap集合

在java的Map集合中,怎样更改value的值

map集合没有专门更改value的方法,更改value的方法就是map.put(key,value),更改就是直接替换,比如想改变key是"1",value是"一"的组合,就是map.put("1","壹"),直接替换就行。

import java.util.HashMap;

import java.util.Map;

public class Demo {

public static void main(String[] args) {

MapInteger,Integer m = new HashMapInteger,Integer();

m.put(1, 1);

print(m);

m.put(1, 2);

print(m);

}

private static void print(MapInteger, Integer m) {

for(Map.EntryInteger, Integer mm : m.entrySet())

System.out.println("K: "+mm.getKey()+",V: "+mm.getValue());

}

}

扩展资料

集合类有一个共同特点,就是它们只容纳对象(实际上是对象名,即指向地址的指针)。这一点和数组不同,数组可以容纳对象和简单数据。如果在集合类中既想使用简单数据类型,又想利用集合类的灵活性,就可以把简单数据类型数据变成该数据类型类的对象,然后放入集合中处理,但这样执行效率会降低。

集合类容纳的对象都是Object类的实例,一旦把一个对象置入集合类中,它的类信息将丢失,也就是说,集合类中容纳的都是指向Object类对象的指针。

这样的设计是为了使集合类具有通用性,因为Object类是所有类的祖先,所以可以在这些集合中存放任何类而不受限制。当然这也带来了不便,这令使用集合成员之前必须对它重新造型。

集合类是Java数据结构的实现。在编写程序时,经常需要和各种数据打交道,为了处理这些数据而选用数据结构对于程序的运行效率是非常重要的。

java集合定义map

Map接口映射唯一键的值。一个关键是,要使用在日后检索值对象。

给定一个键和一个值,可以在一个Map对象存储的值。后的值被存储时,可以使用它的键检索。

抛出一个NoSuchElementException异常,是因为调用映射不存在的项目。

当一个对象是在映射上的元素不兼容抛出一个ClassCastException异常。

NullYiibaierException异常被抛出,如果试图使用一个空对象。

当试图改变一个不可修改的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}

java中Map集合如何修改里面的Key值?

修改map的key但是不改变该key对应的value值,可以使用

map.put("key2",map.remove("key1"));

比如:

map.put("key1","value1");--此时:key1--value1

map.put("key2",map.remove("key1"));--此时 :key2--value1

java中map集合怎么遍历

遍历方法代码如下:

import java.util.HashMap;

import java.util.Map;

public class App01 {

public static void main(String[] args) {

MapString, String map1 = new HashMapString, String();

map1.put("A", "ABC");

map1.put("B", "BCD");

map1.put("C", "CDE");

// 遍历

for(Map.EntryString, String entry : map1.entrySet()) {

System.out.println(entry.getKey() + "-" + entry.getValue());

}

}

}

java 怎么实现这样一个Map集合

java实现Map集合的方式如下:

import java.util.HashMap;

import java.util.Iterator;

import java.util.LinkedHashMap;

import java.util.Map;

import java.util.Map.Entry;

import java.util.Set;

import org.junit.Test;

//Map集合取数据的四种方法

public class MapFetch {

// 第一种方法(传统方法)

@Test

public void funOne() {

Map map = new HashMap();

map.put("1", "第一个数");

map.put("2", "第二个数");

map.put("3", "第三个数");

Set set = map.keySet();

Iterator it = set.iterator();

while (it.hasNext()) {

String key = (String) it.next();

String value = (String) map.get(key);

System.out.println(key + "=" + value);

}

}

}

}