您的位置:

java集合map随笔(java创建一个map集合)

本文目录一览:

java中的集合map问题

iter.next()

当遍历到最后一个的时候

正好被iter.next()打印出来了

然后又要打印下一个 这时已经没有下一个了

所以会报错

解决方法有两个

hashtable添加一对key和value

或者用推荐答案的方法

感觉你想表达的也是 先打印key 然后打印对应的value

就用用object方法就行

for(Iterator iter = map.keySet().iterator();iter.hasNext();)

{

Object obj = iter.next();

System.out.println(obj);

System.out.println( map.get(obj));

}

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问题

//我在你的相关语句上进行了注释

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

class Stu

{

String name;

int age;

public void setName(String str)

{

name=str;

}

public void setAge(int i)

{

age=i;

}

public String getName()

{

return name;

}

public int getAge()

{

return age;

}

}

public class Test {

private MapString, Integer maps = new HashMapString, Integer();;

private Stu su = new Stu();

public void tte() {

su.setName("小明");

su.setAge(22);

// su.setName("小张");

// su.setAge(21);

System.out.println("添加前没有数据是吗?:-----" + maps.isEmpty());//一上来当然没有数据啦

if (maps.isEmpty() == false) {

System.out.println("已有数据,不需添加了");//现在你并没添加数据,当然不会输出

} else if (maps.isEmpty() == true) { //既然没添加数据,条件成立,执行语句

maps.put(su.getName(), su.getAge());

System.out.println("已添加");

System.out.println("添加后没有数据是吗?:" + maps.isEmpty());

}

}

public static void main(String[] args) {

Test t = new Test();

t.tte();

}

}

//最后说一点,你的

if (maps.isEmpty() == false) {

System.out.println("已有数据,不需添加了");

这个语句在程序的开始,当然不可能输出.并且,就算是添加了,也只是在程序运行时加进了内存.程序第二次运行时,系统分配了新的内存.不知你是不是在这点上理解有误.