当你成功的时候,你说的话都是真理。
4.
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
Set<String> set=new HashSet<String>();
set.addAll(list);
System.out.println(set.size());
}
}
4
8.Worker综合
public class TestWorker {
public static void main(String[] args) {
List<Worker> list=new ArrayList<Worker>();
list.add(new Worker("zhang3",18,3000.0));
list.add(new Worker("li4",25,3500.0));
list.add(new Worker("wang5",22,3200.0));
list.add(1,new Worker("zhao6",24,3300.0));
list.remove(3);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
for (Worker w : list) {
w.work();
}
System.out.println(list.get(1).equals(list.get(2)));
}
}
class Worker{
private String name;
private Integer age;
private Double salary;
public Worker() {}
public Worker(String name, int age, double salary) {
super();
this.name = name;
this.age = age;
this.salary = salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public void work() {
System.out.println(name+"\t"+"work");
}
@Override
public String toString() {
return "Worker [name=" + name + ", age=" + age + ", salary=" + salary + "]";
}
@Override
public boolean equals(Object obj) {
//return super.equals(obj);
if(this==obj) {
return true;
}if(obj==null) {
return false;
}if(this.getClass()!=obj.getClass()) {
return false;
}
Worker w=(Worker)obj;
if(this.name.equals(w.name) && this.age.equals(w.age) && this.salary.equals(w.salary)) {
return true;
}
return false;
}
}
输出参考:
Worker [name=zhang3, age=18, salary=3000.0]
Worker [name=zhao6, age=24, salary=3300.0]
Worker [name=li4, age=25, salary=3500.0]
zhang3 work
zhao6 work
li4 work
false
10.利用Map从命令读入一个字符串,表示一个年份,输出该年的世界杯冠军是那支球队,如果该年没有举办世界杯,则输出:没有举办世界杯。
public static void main(String[] args) {
Map<String,String> m=new HashMap<>();
m.put("1930", "乌拉圭");
m.put("1934", "意大利");
m.put("1938", "意大利");
m.put("1950", "乌拉圭");
m.put("1954", "德国");
m.put("1958", "巴西");
m.put("1962", "巴西");
m.put("1966", "英格兰");
m.put("1970", "巴西");
m.put("1974", "德国");
m.put("1978", "阿根廷");
m.put("1982", "意大利");
m.put("1986", "阿根廷");
m.put("1990", "德国");
m.put("1994", "巴西");
m.put("1998", "法国");
m.put("2002", "巴西");
m.put("2006", "意大利");
Scanner input=new Scanner(System.in);
System.out.print("请输入一个年份:");
String s=input.next();
if(m.containsKey(s)==true) {
System.out.println("该年的世界杯冠军是:"+m.get(s)+"球队");
}else {
System.out.println("没有举办世界杯");
}
}
}
输出参考:
请输入一个年份:2006
该年的世界杯冠军是:意大利球队
11.(Map)已知某学校的教学课程内容安排如下:
I.使用Map,以老师的名字作为键,教授的课程名作为值,表示上述课程安排。
II.增加了一位新老师Allen教JDBC
III.Lucy改为教CoreJava
IV.遍历Map,输出所有的老师及老师教授的课程
V.利用Map,输出所有教JSP的老师
public static void main(String[] args) {
Map<String,String> m=new HashMap<>();
m.put("Tom", "CoreJava");
m.put("John", "Oracle");
m.put("Susan", "Oracle");
m.put("Jerry", "JDBC");
m.put("Jim", "Unix");
m.put("Kevin", "JSP");
m.put("Lucy", "JSP");
m.put("Allen", "JDBC");
m.put("Lucy", "CoreJava");
System.out.println(m);
for(Entry<String,String> entry:m.entrySet()) {
System.out.println(entry.getKey()+":"+entry.getValue());
}
if(m.containsValue("JSP")) {
for(Entry<String,String> entry:m.entrySet()) {
if(entry.getValue().equals("JSP"))
System.out.println(entry.getKey());
}
}
}
输出参考:
{Kevin=JSP, Tom=CoreJava, Susan=Oracle, John=Oracle, Lucy=CoreJava, Jerry=JDBC, Allen=JDBC, Jim=Unix}
Kevin:JSP
Tom:CoreJava
Susan:Oracle
John:Oracle
Lucy:CoreJava
Jerry:JDBC
Allen:JDBC
Jim:Unix
Kevin
14.Map给定一个字符串,请输出这个字符串由哪些字符组成,每个字符出现几次?
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String str = input.nextLine();
times(str);
}
public static void times(String str) {
//将字符串转化为字符数字
char[] chars = str.toCharArray();
//创建一个HashMap集合
Map<Character, Integer> map = new HashMap<Character, Integer>();
//遍历字符数组
for (char c : chars) {
//当c字符首次存在于map中记录1
if (!map.containsKey(c)) {
map.put(c, 1);
} else {
//多次存在map中+1记录就OK
//实际上就是c字符每出现一次覆盖一次该key的value值(+1后的value值)
map.put(c, map.get(c) + 1);
}
//可以把if-else更换为下面的表达式更显简单
//map.put(c, map.containsKey(c) ? map.get(c) + 1 : 1);
}
//结果
for (Character key : map.keySet()) {
System.out.println(key + " 字符在字符串中出现过 " + map.get(key) + " 次");
}
}
输出参考:
请输入一个字符串:987654123123123
1 字符在字符串中出现过 3 次
2 字符在字符串中出现过 3 次
3 字符在字符串中出现过 3 次
4 字符在字符串中出现过 1 次
5 字符在字符串中出现过 1 次
6 字符在字符串中出现过 1 次
7 字符在字符串中出现过 1 次
8 字符在字符串中出现过 1 次
9 字符在字符串中出现过 1 次