商苑面馆:Java HashSet

来自CloudWiki
跳转至: 导航搜索

HashMap

HashMap基本操作

import java.util.*;

/*本类对应实训: */
public class MainClass {
	
 
    public static void main(String[] args) {
    	HashSet<Integer> hashSet = new HashSet<>();
    	//增加元素
    	hashSet.add(5); //向集合中添加一个整数
    	hashSet.add(4); //向集合中添加一个
    	hashSet.add(3); //向集合中添加一个
    	hashSet.add(2); //向集合中添加一个
    	hashSet.add(1); //向集合中添加一个
    	//删除元素
    	hashSet.remove(1);
    	
    	//查找元素
    	if(hashSet.contains(4)){
    		   System.out.println("4存在于集合之中");
    	}else{
    		System.out.println("4不存在于集合之中");
    	}
    	
    	//遍历集合
    	System.out.println("遍历集合:");
    	for(Integer i:hashSet)
			System.out.println(i);
    	
    	}
}

面馆实训

新建食物仓库类FoodDao4

现在,我们在原先的项目中,新建立一个类FoodDao4,表示食物仓库:这个类的成员变量只有一个——一个命名为n、成员类型为Food的HashSet。我们用它来表示我们面馆里所有食物。


public class FoodDao4 {
    private HashSet<Food> n;//食物数组
    
    
    public FoodDao4(HashSet<Food> n ){
    	this.n = n;    	
    } 
   
    public static void main(String[] args) {
		// TODO Auto-generated method stub  	
        
        
    }

}

新建search方法和toString方法

在FoodDao4里面新建search方法和toString方法

search方法表示在类中寻找特定的商品

toString方法表示把整个仓库中的商品清单以字符串的形式展示出来。

这两个方法功能和上一个实训的同名方法相同,只不过具体实现换成了LinkedList.

   
    //按名称搜
    public Food search(String s){
    	for(Food f:n){
    		if(f.getName().equals(s))
    			return f;
    	}
    	return null;
    	//return new Noodle();
    }
 
    public String toString(){
    	String s="";
    	for(Food f:n){
    		s += f.toString()+"\r\n";
    	}    	
    	return s;
    }

编写测试用的main方法

main方法的代码主要包含:

  • 数组初始化
  • 接收用户输入
  • 调用FoodDao的方法
public static void main(String[] args) {
		// TODO Auto-generated method stub
    	 
    	
    	//数组初始化    
    	HashSet<Food> al = new HashSet<Food>();//新建一个数组列表
    	Food f1 = new Noodle("炸酱面",12.0,3,"不辣");
    	Food f2 =new Noodle("臊子面",14.0,2,"麻辣");
    	//Food f2 = new Rice("牛肉盖浇饭",3,2);
    	Food f3 = new Noodle("刀削面",10.0,5,"微辣");
    	al.add(f1);
    	al.add(f2);
    	al.add(f3);
    	
        FoodDao4  f = new FoodDao4(al);//用数组列表f初始化食物仓库foodset
        System.out.println(f.toString());//调用toString方法
        
        //接收用户输入
        Scanner scan = new Scanner(System.in);
        System.out.println("您想点什么餐品?");               
        String meal = scan.next();
        System.out.println("输入的数据为:" + meal);        
        
        //按名称搜索,调用search方法
        Food n01 = f.search(meal);
        if(n01 != null) {
           System.out.println("餐品详细信息为:"+n01.toString());
           System.out.println("请付钱!");
	    }else {
	    	System.out.println("对不起,我们店现在没有这种面");
	    }
        
        scan.close();
        
        
    }

运行结果

Java5-5.png

源代码:

import java.util.*;

import entity.*;

public class FoodDao4 {
    //private Food[] n;//食物数组
    private HashSet<Food> n;//食物数组
    
    public FoodDao4(HashSet<Food> n ){
    	this.n = n;
    	
    }
   //按名称搜
    public Food search(String s){
    	for(Food f:n){
    		if(f.getName().equals(s))
    			return f;
    	}
    	return null;
    	//return new Noodle();
    }
 
    public String toString(){
    	String s="";
    	for(Food f:n){
    		s += f.toString()+"\r\n";
    	}    	
    	return s;
    }
   
    public static void main(String[] args) {
		// TODO Auto-generated method stub
    	 
    	
    	//数组初始化    
    	HashSet<Food> al = new HashSet<Food>();//新建一个数组列表
    	Food f1 = new Noodle("炸酱面",12.0,3,"不辣");
    	Food f2 =new Noodle("臊子面",14.0,2,"麻辣");
    	//Food f2 = new Rice("牛肉盖浇饭",3,2);
    	Food f3 = new Noodle("刀削面",10.0,5,"微辣");
    	al.add(f1);
    	al.add(f2);
    	al.add(f3);
    	
        FoodDao4  f = new FoodDao4(al);//用数组列表f初始化食物仓库foodset
        System.out.println(f.toString());//调用toString方法
        
        //接收用户输入
        Scanner scan = new Scanner(System.in);
        System.out.println("您想点什么餐品?");               
        String meal = scan.next();
        System.out.println("输入的数据为:" + meal);        
        
        //按名称搜索,调用search方法
        Food n01 = f.search(meal);
        if(n01 != null) {
           System.out.println("餐品详细信息为:"+n01.toString());
           System.out.println("请付钱!");
	    }else {
	    	System.out.println("对不起,我们店现在没有这种面");
	    }
        
        scan.close();
        
        
    }

}