Java作业:HashMap,ArrayList,LinkedList的使用

1.在上机练习4第1题的基础上,分别使用ArrayList、LinkedList、HashMap和TreeSet保存学生的信息,测试不同数据结构执行以下操作需要的时间:
(1)添加10,000个学生。
(2)查找100个学生。
(3)删除100个学生。
程序文件命名为Exe6_1.java。(可适当调整学生数量,以适应你自己的机器)

import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map.Entry;
import java.util.Scanner;

import javax.swing.text.html.HTMLDocument.Iterator;

public class Exe6_1 {
	int index=0;
	
	Scanner in = new Scanner(System.in);
	
	HashMap<String,Integer> HashNo=new HashMap<String,Integer>();
	HashMap<String,Integer> HashName=new HashMap<String,Integer>();
	HashMap<String,Integer> HashAge=new HashMap<String,Integer>();
	HashMap<String,Integer> HashGender=new HashMap<String,Integer>();
	
	ArrayList<String> ListNo = new ArrayList<String>();
	ArrayList<String> ListName = new ArrayList<String>();
	ArrayList<String> ListAge = new ArrayList<String>();
	ArrayList<String> ListGender = new ArrayList<String>();
	
	LinkedList<String> lListNo = new LinkedList<String>();
	LinkedList<String> lListName = new LinkedList<String>();
	LinkedList<String> lListAge = new LinkedList<String>();
	LinkedList<String> lListGender = new LinkedList<String>();
	
	public void hashtianjia()
	{
		String no = new String(in.nextLine());
		String name = new String(in.nextLine());
		String age = new String(in.nextLine());
		String gender = new String(in.nextLine());
		HashNo.put(no,index);
		HashName.put(name,index);
		HashAge.put(age,index);
		HashGender.put(gender,index);
		index++;
	}
	
	public static String getKey(HashMap<String,Integer> map,Integer keys)
	{
         String key = null;
         for(String getKey: map.keySet()){
             if(map.get(getKey).equals(keys)){
                 key = getKey;
             }
         }
         return key;
         //这个key肯定是最后一个满足该条件的key.
	}
	
	public void hashchazhao()
	{
		Integer keys=-1;
		String chazhao = new String(in.nextLine());
		keys = HashNo.get(chazhao);
		if(keys!=-1)
		{
			System.out.println(getKey(HashNo,keys));
			System.out.println(getKey(HashName,keys));
			System.out.println(getKey(HashAge,keys));
			System.out.println(getKey(HashGender,keys));
		}
	}

	public void hashshanchu()
	{
		String chazhao = new String(in.nextLine());
		HashNo.remove(chazhao);
		HashName.remove(chazhao);
		HashAge.remove(chazhao);
		HashGender.remove(chazhao);
	}
	
	public void llisttianjia()
	{
		String no = new String(in.nextLine());
		String name = new String(in.nextLine());
		String age = new String(in.nextLine());
		String gender = new String(in.nextLine());
		lListNo.add(no);
		lListName.add(name);
		lListAge.add(age);
		lListGender.add(gender);
	}
	
	public void llistchahzao()
	{
		String chazhao = new String(in.nextLine());
		for(int i=0;i<lListNo.size();i++)
		{
			if(chazhao.equals(lListNo.get(i)))
			{
				System.out.println(lListNo.get(i));
				System.out.println(lListName.get(i));
				System.out.println(lListAge.get(i));
				System.out.println(lListGender.get(i));
				break;
			}
		}
	}
	
	public void llistshanchu()
	{
		String chazhao = new String(in.nextLine());
		for(int i=0;i<lListNo.size();i++)
		{
			if(chazhao.equals(lListNo.get(i)))
			{
				lListNo.remove(i);
				lListName.remove(i);
				lListAge.remove(i);
				lListGender.remove(i);
				break;
			}
		}
	}
	
	public void listtianjia()
	{
		String no = new String(in.nextLine());
		String name = new String(in.nextLine());
		String age = new String(in.nextLine());
		String gender = new String(in.nextLine());
		ListNo.add(no);
		ListName.add(name);
		ListAge.add(age);
		ListGender.add(gender);
	}
	
	public void listchazhao()
	{
		String chazhao = new String(in.nextLine());
		for(int i=0;i<ListNo.size();i++)
		{
			if(chazhao.equals(ListNo.get(i)))
			{
				System.out.println(ListNo.get(i));
				System.out.println(ListName.get(i));
				System.out.println(ListAge.get(i));
				System.out.println(ListGender.get(i));
				break;
			}
		}
	}
	
	public void listshanchu()
	{
		String chazhao = new String(in.nextLine());
		for(int i=0;i<ListNo.size();i++)
		{
			if(chazhao.equals(ListNo.get(i)))
			{
				ListNo.remove(i);
				ListName.remove(i);
				ListAge.remove(i);
				ListGender.remove(i);
				break;
			}
		}
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Exe6_1 test = new Exe6_1();
		
		Scanner in = new Scanner(System.in);
		while(true)
		{
			
			System.out.println("------------------------");
			System.out.println("Plese input the command");
			System.out.println("请注意,每一个命令分别使用HashMap,LinkedList,ArrayList分别执行三次");
			System.out.println("1.添加学生,格式为:学号(换行)姓名(换行)年龄(换行)性别  PS:因为要使用三种不同的添加方法,因此请添加三次");
			System.out.println("2.查找学生,格式为:学号");
			System.out.println("3.删除学生,格式为:学号");
			System.out.println("------------------------");
			int command;
			command=in.nextInt();
			switch(command)
			{
			case 1:
				test.hashtianjia();
				test.listtianjia();
				test.llisttianjia();
				break;
			case 2:
				test.hashchazhao();
				test.listchazhao();
				test.llistchahzao();
				break;
			case 3:
				test.hashshanchu();
				test.listshanchu();
				test.llistshanchu();
				break;
			default:
				break;
			}
		}
	}
}

猜你喜欢

转载自blog.csdn.net/FZUMRWANG/article/details/85238624
今日推荐