用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();来实现的哦!