黑马程序员技术交流社区
标题:
关于HashMap,正纠结呢。。。。
[打印本页]
作者:
简★零度
时间:
2013-11-11 22:40
标题:
关于HashMap,正纠结呢。。。。
集合使用过程:
第1步:封装对象
第2步:声明对象
第3步:确定要使用的集合类型
第4步:声明集合
第5步:将声明的对象添加到集合中
第6步:调用集合内对象内属性
在使用HashMap()使用方法产生的疑问:
/*声明集合*/
Map a=new HashMap();
/*将声明的对象添加到集合中*/
是通过 a.put(键 , 值); 的方式添加的,其中的键是自定义的标识,“键”的内容要求是不可重复且是无序的;“值”内存储的是对象,根据万物皆对象的思想,集合也可以看做一个对象,
那么向集合中添加集合时,即: a.put(键, 集合);
问题:在第6步中,我要调用存储在集合中的集中的对象中的属性,该怎么调用?麻烦讲解下下思路,最好附实例。谢谢。。。。。。。。
作者:
李慧声
时间:
2013-11-12 00:32
本帖最后由 李慧声 于 2013-11-12 09:59 编辑
不大明白你这句话是什么意思?调用存储在
集合中的集中的对象
中的属性?
我的理解应该map中的键或是键所对应的的值的属性是吧?
入果按我理解的话,那其实也不难啊,那么你想要使用键或是值的属性,首先第一步,那你要获取到这些键或是键对应的值吧,这你应该没问题吧,
for(Map.Entry<xx, yy> me : map.entrySet()) {
xx key = me.getKey();
yy value = me.getValue();
那么 这里就是你所要对key或是value进行的操作了,它有什么属性你就操作什么了,主要是你问的这个问题太泛泛而谈了,要针对具体的东东进行操作就OK。
你获取无论自定义的对象或是其他,对它的属性进行操作还不是简单的事~~~
}
懒得举例子,其实楼入住应该不难想清楚,你一直在对map中的元素进行着操作,这本身就是对该类型的数进行进行的操作而已。
说的比较泛,希望对楼主有用~~
作者:
ysunday
时间:
2013-11-12 01:08
1.用keySet()这个方法
这个方法得到的是key的集合,知道了key的集合,就可以通过HashMap的get方法得到key对应的对象
的到了对象,就可调用对象的属性了
import java.util.*;
public class Test15{
public static void main(String[] args){
Person p0 = new Person("zhangsan0", 20);
Person p1 = new Person("zhangsan1", 21);
Person p2 = new Person("zhangsan2", 22);
Person p3 = new Person("zhangsan3", 23);
HashMap< Integer, Person> hm = new HashMap<Integer, Person>();
hm.put(new Integer(0), p0);
hm.put(new Integer(1), p1);
hm.put(new Integer(2), p2);
hm.put(new Integer(3) ,p3);
Set<Integer> kys = hm.keySet();//用这个方法或者
//entrySet()这个方法你得去看api
for(int x : kys){//这里用循环就可以
Person p = hm.get(x);//得出person对象
String name = p.getName();//调用person的方法
int age = p.getAge();//调用方法
System.out.println("name: " + name+ " age: " + age);
}
}
}
class Person{
private String name;
private int age;
public Person(String name, int age){
this.name = name;
this.age = age;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
public void setAge(int age){
this.age = age;
}
}
复制代码
2,通过entrySet()这个方法,这个方法得到的是
Map.Entry<K,V>,是key和alue的一组映射关系。然后进行操作,具体怎么操作,建议你去看毕向东老师的视频,里边详细讲过,
Set<Map.Entry<Integer, Person>> me = hm.entrySet();
for(Iterator<Map.Entry<Integer, Person>> it = me.iterator(); it.hasNext();){
Map.Entry<Integer, Person> m = it.next();
String name = m.getKey();
int age= m.getValue();
System.out.println(name + ":" + age);
}
复制代码
这里只写操作对象的那几步
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2