多种方法java实现星座

用List实现

List是有序的列表,允许列表元素重复,其方法有,添加元素为list.add(ys),获取指定元素list.get(i),删除指定索引list.remove(i),第一次指定元素出现位置indexof(ys)。
下面是 ArrayList实现的十二星座

package constellation;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class constellation 
{
	constellation ()
	{
		Scanner scanner=new Scanner(System.in);
		System.out.println("请输入你的出身月份");
		int  month=scanner.nextInt();
		System.out.println("请输入你的出身日期");
		int  date=scanner.nextInt();
		List<String> list=list();
		int i=jude_constellation(month,date);
		judemonth_date(list,i);
		scanner.close();
	}
	public  List<String> list()
	{
		List<String> list=new ArrayList<String>();
		list.add("水瓶座1.20-2.18");
		list.add("双鱼座2.19-3.20");
		list.add("白羊座3.21-4.19");
		list.add("金牛座4.20-5.20");
		
		list.add("双子座5.21-6.21");
		list.add("巨蟹座6.22-7.22");
		list.add("狮子座7.23-8.22");
		list.add("处女座8.23-9.22");
		
		list.add("天秤座9.23-10.23");
		list.add("天蝎座10.24-11.22");
		list.add("射手座11.23-12.21");
		list.add("摩羯座12.22-1.19");
		
		return list; 
	}
	
	public void judemonth_date(List<String> list,int i) 
	{
		Object o=list.get(i);
		System.out.println("你的星座是"+o);
	}
	public int jude_constellation(int month,int date) 
	{
		int i = 12;
		if(month<1||month>12) 
		{
			System.out.println("输入的月份不存在");
		}
		if(date>31||date<1) 
		{
			System.out.println("输入的日期不存在");
		}
		if((month==1&&date>=20)||(month==2&&date<=18)) 
		{
			i=0;
		}
		//"水瓶座1.20-2.18"
		
		if((month==2&&date>=19)||(month==3&&date<=20)) 
		{
			i=1;
		}
		//"双鱼座2.19-3.20";
		
		if((month==3&&date>=21)||(month==4&&date<=19)) 
		{
			i=2;
		}
		//"白羊座3.21-4.19";
		
		if((month==4&&date>=20)||(month==5&&date<=20)) 
		{
			i=3;
		}
		//"金牛座4.20-5.20";
		
		
		if((month==5&&date>20)||(month==6&&date<=21)) 
		{
			i=4;
		}
		//"双子座5.21-6.21";
		
		if((month==6&&date>21)||(month==7&&date<=22)) 
		{
			i=5;
		}
		//"巨蟹座6.22-7.22";
		
		if((month==7&&date>=23)||(month==8&&date<=22)) 
		{
			i=6;
		}
		//"狮子座7.23-8.22";
		
		if((month==8&&date>=23)||(month==9&&date<=22)) 
		{
			i=7;
		}
		//"处女座8.23-9.22";
		
		
		if((month==9&&date>=23)||(month==10&&date<=23)) 
		{
			i=8;
		}
		//"天秤座9.23-10.23";
		
		if((month==10&&date>=24)||(month==11&&date<=22)) 
		{
			i=9;
		}
		//"天蝎座10.24-11.22";
		
		if((month==11&&date>=23)||(month==12&&date<=21)) 
		{
			i=10;
		}
		//"射手座11.23-12.21";
		
		if((month==12&&date>=22)||(month==1&&date<=19)) 
		{
			i=11;
		}
		//"摩羯座12.22-1.19";
		return i;
	}
	public static void main(String ager[]) 
	{
		new constellation ();
	}
}
var foo = 'bar';

用Map实现

Map是将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值,hashmap中常用的方法,put(object key,object value);将指定的值与此映射中的指定键关联,get(object key);根据key值找出对应的value值。containsKey(object key);判断键是否存在,containsValue(object value)判断值是否存在。

下面是 HashMap实现的十二星座

package constellation;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class constellation2
{
	constellation2 ()
	{
		Scanner scanner=new Scanner(System.in);
		System.out.println("请输入你的出身月份");
		int  month=scanner.nextInt();
		System.out.println("请输入你的出身日期");
		int  date=scanner.nextInt();
		Map<Integer, String> m=map();
		int i=jude_constellation(month,date);
		judemonth_date(m,i);
		scanner.close();
	}
	public  Map<Integer, String> map()
	{
		Map<Integer, String> map=new HashMap<Integer, String>();
		map.put(1,"水瓶座1.20-2.18");
		map.put(2,"双鱼座2.19-3.20");
		map.put(3,"白羊座3.21-4.19");
		map.put(4,"金牛座4.20-5.20");
		
		map.put(5,"双子座5.21-6.21");
		map.put(6,"巨蟹座6.22-7.22");
		map.put(7,"狮子座7.23-8.22");
		map.put(8,"处女座8.23-9.22");
		
		map.put(9,"天秤座9.23-10.23");
		map.put(10,"天蝎座10.24-11.22");
		map.put(11,"射手座11.23-12.21");
		map.put(12,"摩羯座12.22-1.19");
		
		return map; 
	}
	
	public void judemonth_date(Map<Integer, String> map,int i) 
	{
		System.out.println("你的星座是"+map.get(i).toString());
	}
	public int jude_constellation(int month,int date) 
	{
		int i = 12;
		if(month<1||month>12) 
		{
			System.out.println("输入的月份不存在");
		}
		if(date>31||date<1) 
		{
			System.out.println("输入的日期不存在");
		}
		if((month==1&&date>=20)||(month==2&&date<=18)) 
		{
			i=0;
		}
		//"水瓶座1.20-2.18"
		
		if((month==2&&date>=19)||(month==3&&date<=20)) 
		{
			i=1;
		}
		//"双鱼座2.19-3.20";
		
		if((month==3&&date>=21)||(month==4&&date<=19)) 
		{
			i=2;
		}
		//"白羊座3.21-4.19";
		
		if((month==4&&date>=20)||(month==5&&date<=20)) 
		{
			i=3;
		}
		//"金牛座4.20-5.20";
		
		
		if((month==5&&date>20)||(month==6&&date<=21)) 
		{
			i=4;
		}
		//"双子座5.21-6.21";
		
		if((month==6&&date>21)||(month==7&&date<=22)) 
		{
			i=5;
		}
		//"巨蟹座6.22-7.22";
		
		if((month==7&&date>=23)||(month==8&&date<=22)) 
		{
			i=6;
		}
		//"狮子座7.23-8.22";
		
		if((month==8&&date>=23)||(month==9&&date<=22)) 
		{
			i=7;
		}
		//"处女座8.23-9.22";
		
		
		if((month==9&&date>=23)||(month==10&&date<=23)) 
		{
			i=8;
		}
		//"天秤座9.23-10.23";
		
		if((month==10&&date>=24)||(month==11&&date<=22)) 
		{
			i=9;
		}
		//"天蝎座10.24-11.22";
		
		if((month==11&&date>=23)||(month==12&&date<=21)) 
		{
			i=10;
		}
		//"射手座11.23-12.21";
		
		if((month==12&&date>=22)||(month==1&&date<=19)) 
		{
			i=11;
		}
		//"摩羯座12.22-1.19";
		return i+1;
	}
	public static void main(String ager[]) 
	{
		new constellation2 ();
	}
}

用Set实现

HashSet的各种方法:增加add(null);删除remove(news);对比查找
contains(news);清空集合clear();获取长度size();
但凡是可以用序号的方法都没有。所以采用迭代器

下面是 HashSet实现的十二 星座

package constellation;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
public class constellation3
{
	constellation3 ()
	{
		Scanner scanner=new Scanner(System.in);
		System.out.println("请输入你的出身月份");
		int  month=scanner.nextInt();
		System.out.println("请输入你的出身日期");
		int  date=scanner.nextInt();
		HashSet<String> hashset=hashset();
		int i=jude_constellation(month,date);
		judemonth_date(hashset,i);
		scanner.close();
	}
	public  HashSet<String> hashset()
	{
		HashSet<String> hashset=new HashSet<String>();
		hashset.add("水瓶座1.20-2.18");
		hashset.add("双鱼座2.19-3.20");
		hashset.add("白羊座3.21-4.19");
		hashset.add("金牛座4.20-5.20");
		
		hashset.add("双子座5.21-6.21");
		hashset.add("巨蟹座6.22-7.22");
		hashset.add("狮子座7.23-8.22");
		hashset.add("处女座8.23-9.22");
		
		hashset.add("天秤座9.23-10.23");
		hashset.add("天蝎座10.24-11.22");
		hashset.add("射手座11.23-12.21");
		hashset.add("摩羯座12.22-1.19");
		
		return hashset; 
	}
	
	public void judemonth_date(HashSet<String> hashset,int index) 
	{
		 Iterator<String> it=hashset.iterator();
		 int i;
		 if(it.hasNext()) 
		 {
			 for(i=0;i<index;i++) 
			 {
				 it.next();
			 }
			 Object o=it.next();
			 System.out.println("你的星座是"+o);
		 }
	}
	public int jude_constellation(int month,int date) 
	{
		int i =0;
		if(month<1||month>12) 
		{
			System.out.println("输入的月份不存在");
		}
		if(date>31||date<1) 
		{
			System.out.println("输入的日期不存在");
		}
		if((month==1&&date>=20)||(month==2&&date<=18)) 
		{
			i=1;
		}
		//"水瓶座1.20-2.18"
		
		if((month==2&&date>=19)||(month==3&&date<=20)) 
		{
			i=2;
		}
		//"双鱼座2.19-3.20";
		
		if((month==3&&date>=21)||(month==4&&date<=19)) 
		{
			i=3;
		}
		//"白羊座3.21-4.19";
		
		if((month==4&&date>=20)||(month==5&&date<=20)) 
		{
			i=4;
		}
		//"金牛座4.20-5.20";
		
		
		if((month==5&&date>20)||(month==6&&date<=21)) 
		{
			i=5;
		}
		//"双子座5.21-6.21";
		
		if((month==6&&date>21)||(month==7&&date<=22)) 
		{
			i=6;
		}
		//"巨蟹座6.22-7.22";
		
		if((month==7&&date>=23)||(month==8&&date<=22)) 
		{
			i=7;
		}
		//"狮子座7.23-8.22";
		
		if((month==8&&date>=23)||(month==9&&date<=22)) 
		{
			i=8;
		}
		//"处女座8.23-9.22";
		
		
		if((month==9&&date>=23)||(month==10&&date<=23)) 
		{
			i=9;
		}
		//"天秤座9.23-10.23";
		
		if((month==10&&date>=24)||(month==11&&date<=22)) 
		{
			i=10;
		}
		//"天蝎座10.24-11.22";
		
		if((month==11&&date>=23)||(month==12&&date<=21)) 
		{
			i=11;
		}
		//"射手座11.23-12.21";
		
		if((month==12&&date>=22)||(month==1&&date<=19)) 
		{
			i=12;
		}
		//"摩羯座12.22-1.19";
		System.out.println(i+1);
		return i+1;
	}
	public static void main(String ager[]) 
	{
		new constellation3 ();
	}
}

//注释作为集合类里面的Set,List,Map都只是一个接口,其方法要衍生类来实现,像他们是无法Set s=new Set();来实现的哦!

发布了13 篇原创文章 · 获赞 0 · 访问量 297

猜你喜欢

转载自blog.csdn.net/FYM1211/article/details/105160617