java程序读一个文本文件并用hashmap进行存储,并对其中的信息按照姓名排序

 我来答
欢乐达人hh
推荐于2018-04-07 · TA获得超过642个赞
知道小有建树答主
回答量:232
采纳率:0%
帮助的人:145万
展开全部
给你发一个完整的吧,反正我电脑上有,
/**
* 存储关联的键值对
* @param key:键
* @param value:值
* @return
*/
public V put(K key, V value) {
//当键值为null时,调用putForNullKey(value)的方法存储,
//在该方法中调用recordAccess(HashMap<K,V> m)的方法处理
if (key == null)
return putForNullKey(value);
//根据key的KeyCode,计算hashCode
int hash = hash(key.hashCode());
//调用indexFor方法,返回hash在对应table中的索引(Entry[] table)
int i = indexFor(hash, table.length);
//当i索引处的Entry不为null时,遍历下一个元素
for (Entry<K,V> e = table[i]; e != null; e = e.next) {
Object k;
//如果遍历到的hash值等于根据Key值计算出的hash值并且
//key值与需要放入的key值相等时,存放与key对应的value值
if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {
//覆盖oldValue的值
V oldValue = e.value;
e.value = value;
e.recordAccess(this);
return oldValue;
}
}

modCount++;
//当i索引处的Entry为null时,将指定的key、value、hash条目放入到指定的桶i中
//如果现有HashMap的大小大于容量*负载因子时,resize(2 * table.length);
addEntry(hash, key, value, i);
return null;
}

/实例化HashMap对象
HashMap<String,String> hashMap=new HashMap<String,String>();
//1、将Map接口变为Set接口
Set<Map.Entry<String,String>> set=hashMap.entrySet();
//2、实例化Iterator接口
Iterator it=set.iterator();
while(it.hasNext()){
//3、得到存储在HashMap中的Entry对象
Map.Entry<String,String> me=(Entry<String, String>) it.next();
//4、通过Entry得到key和value
System.out.println("Key="+me.getKey()+"Value="+me.getValue());
}

HashMap<Student,String> map=new HashMap<Student,String>();
map.put(new Student("1608100201","Jony"), "CSU");
System.out.println(map.get(stu));
//实例化一个学生对象
Student stu=new Student("1608100201","Jony");
HashMap<Student,String> map=new HashMap<Student,String>();
map.put(stu, "CSU");
System.out.println(map.get(stu));
public class Student {
//学生的学号属性
public static String ID;
//学生的姓名属性
private String name;
/*
* 重载构造方法
*/
public Student(String ID,String name){
this.ID=ID;
this.name=name;
}

/**
* 覆写equals()方法
*/
public boolean equals(Object obj) {
//判断地址是否相等
if(this==obj){
return true;
}
//传递进来用于比较的对象不是本类的对象
if (!(obj instanceof Student))
return false;
//向下转型
Student stu = (Student)obj;
//比较属性内容是否相等
if (this.ID.equals(stu.ID)&&this.name.equals(stu.name)) {
return true;
}
return false;
}
/**
* 覆写hashCode()方法
*/
public int hashCode() {
return this.ID.hashCode();
}


祝你好运了!~
匿名用户
2015-01-20
展开全部
楼主,这个编程的需求,太宽范围了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
让猫飞一会儿
2015-01-20 · TA获得超过1120个赞
知道小有建树答主
回答量:540
采纳率:80%
帮助的人:279万
展开全部
直接把文本文件发给我(主要是看格式),然后我给你发JAVA文件可以直接用。
QQ:5959563 答1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式