package net.csdn.blog.wdd9527.week04.day04.test06;
import java.util.Scanner;
/**
* (Map)利用Map,完成下面的功能:
* 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该
* 年没有举办世界杯,则输出:没有举办世界杯。
* 附:世界杯冠军以及对应的夺冠年份,请参考下图.(图略)
* 截止到2009 年为止,历届世界杯冠军
*
* 读入一支球队的名字,输出该球队夺冠的年份列表。
* 例如,读入“巴西”,应当输出
* 1958 1962 1970 1994 2002
* 读入“荷兰”,应当输出
* 没有获得过世界杯
* @author WDD
*
*/
public class Main {
public static void main(String[] args) {
Tools tm = new Tools();
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查询的年份:");
tm.keyJudge(sc.nextInt());
System.out.println("请输入要查询球队的名字:");
tm.valueJudge(sc.next());
sc.close();
}
}
package net.csdn.blog.wdd9527.week04.day04.test06;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;
public class Tools {
HashMap<Integer, String> map = new HashMap<>();
Tools() {
map.put(2006, "意大利");
map.put(2002, "巴西");
map.put(1998, "法国");
map.put(1994, "巴西");
map.put(1990, "德国");
map.put(1986, "阿根廷");
map.put(1982, "意大利");
map.put(1978, "阿根廷");
map.put(1974, "德国");
map.put(1970, "巴西");
map.put(1966, "英格兰");
map.put(1962, "巴西");
map.put(1958, "巴西");
map.put(1954, "德国");
map.put(1950, "乌拉圭");
map.put(1938, "意大利");
map.put(1934, "意大利");
map.put(1930, "乌拉圭");
}
//判断这一年有无世界杯
public void keyJudge(int a) {
//遍历map集合,看这一年有没有世界杯
//对比key值,因此用.keyset()方法
Set<Integer> key = map.keySet();
int count = 0;
for (Integer integer : key) {
if (integer == a) {
System.out.println(a + "年的世界杯冠军是:" + map.get(integer));
return;
} else {
count++;
if (count == key.size()) {
System.out.println(a + "年没有举办世界杯。");
}
}
}
}
//判断这个国家那一年获得世界杯
public void valueJudge (String a) {
//需要遍历map集合,通过key获得value,所以用entrySet()方法转换为set集
Set<Entry<Integer,String>> set = map.entrySet();
int count = 0;
Iterator<Entry<Integer, String>> it = set.iterator();
while (it.hasNext()) {
Entry<Integer, String> next = it.next();
String value = next.getValue();
if (value.equals(a)) {
Integer key = next.getKey();
System.out.print(key + " ");
} else {
count++;
if (count == set.size()) {
System.out.println(a + "没有获得过世界杯。");
}
}
}
}
}
package net.csdn.blog.wdd9527.week04.day04.test05;
import java.util.LinkedList;
/**
* 设计一个Student类,该类中包括学生的姓名和成绩。创建Student类的5个对象
* 将以上5个对象放入LinkedList中,完成如下操作和统计:
* 1、输出LinkedList中的对象个数。
* 2、删除姓名为“刘杰”的学生信息,并输出LinkedList中现有学生信息。
* 3、将姓名为“刘德华”的学生成绩改为95。
* 4、输出成绩不及格的学生姓名。
* @author WDD
*
*/
public class Main {
public static void main(String[] args) {
LinkedList<Student> list = new LinkedList<>();
Student s = new Student("刘德华", 90);
Student s1 = new Student("张学友", 80);
Student s2 = new Student("刘杰", 65);
Student s3 = new Student("章子怡", 100);
Student s4 = new Student("周迅", 60);
list.add(s);
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
//输出LinkedList中的对象个数。
System.out.println("总共有" + list.size() + "个学生。");
//删除姓名为“刘杰”的学生信息,并输出LinkedList中现有学生信息。
System.out.println("删除刘杰的信息之后:");
list.remove(s2);
for (Student student : list) {
System.out.println(student);
}
System.out.println("将刘德华的成绩改为95之后:");
//将姓名为“刘德华”的学生成绩改为95。
list.set(0, new Student("刘德华",95));
for (Student student : list) {
System.out.println(student);
}
//输出成绩不及格的学生姓名。(低于80分成绩不合格)
System.out.println("不合格学生姓名:");
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getGrade() < 80) {
System.out.println(list.get(i).getName());
}
}
}
}
package net.csdn.blog.wdd9527.week04.day04.test05;
public class Student {
private String name;
private Integer grade;
public Student(String name, Integer grade) {
super();
this.name = name;
this.grade = grade;
}
public Student() {
super();
}
@Override
public String toString() {
return "Student [name=" + name + ", grade=" + grade + "]";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getGrade() {
return grade;
}
public void setGrade(Integer grade) {
this.grade = grade;
}
}
package net.csdn.blog.wdd9527.week04.day04.test03;
import java.util.ArrayList;
import java.util.Collections;
/**
* 编写代码,使用ArrrayList类的对象顺序存储“A”—“Z”这26个字符,
* 然后倒序打印出该字符
*
*/
public class Demo03 {
public static void main(String[] args) {
ArrayList<Character> list = new ArrayList<>();
for (int i = 65; i <= 90; i++) {
list.add((char)i);
}
//方式1:
for (int i = list.size(); i > 0; i--) {
System.out.print(list.get(i - 1) + " ");//size是从1开始数,get()是从0开始数。
}
System.out.println();
//方式2:
Collections.reverse(list);//Collections工具类里面的.reeverse()可以实现集合反转
for (Character ch : list) {
System.out.print(ch + " ");
}
}
}
package net.csdn.blog.wdd9527.week04.day03.Test03;
import java.util.Iterator;
import java.util.TreeSet;
/**
* 向TreeSet集合中加入5个员工的对象,根据员工的年龄(升序)进行排序,若年龄相同,
* 再根据工龄(降序)来排序,若工龄相同,根据薪水(降序)排序
* @author WDD
*
*/
public class Main {
public static void main(String[] args) {
TreeSet<Worker> set = new TreeSet<>();
set.add(new Worker("张三", 30, 10, 7000));
set.add(new Worker("李四", 28, 11, 6000));
set.add(new Worker("赵五", 29, 10, 5500));
set.add(new Worker("钱六", 28, 10, 5500));
set.add(new Worker("孙七", 30, 10, 6500));
Iterator<Worker> i = set.iterator();
while (i.hasNext()) {
Worker w = (Worker) i.next();
System.out.println(w.toString());
}
}
}
package net.csdn.blog.wdd9527.week04.day03.Test03;
public class Worker implements Comparable<Worker>{
private String name;
private Integer age;
private Integer workAge;//工龄
private Integer salary;//工资
public Worker(String name, Integer age, Integer workAge, Integer salary) {
super();
this.name = name;
this.age = age;
this.workAge = workAge;
this.salary = salary;
}
public Worker() {
super();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Integer getWorkAge() {
return workAge;
}
public void setWorkAge(Integer workAge) {
this.workAge = workAge;
}
public Integer getSalary() {
return salary;
}
public void setSalary(Integer salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Worker [name=" + name + ", age=" + age + ", workAge=" + workAge + ", salary=" + salary + "]";
}
@Override
public int compareTo(Worker o) {
if (this.age == o.getAge()) {
if (this.workAge == o.getWorkAge()) {
if (this.salary < o.getSalary()) {
return 1;
}
} else if (this.workAge > o.getWorkAge()) {}
return 1;
} else if (this.age > o.getAge()) {
return 1;
}
return -1;
}
}
package net.csdn.blog.wdd9527.week04.day03.Test02;
import java.util.ArrayList;
import java.util.Iterator;
/**
*按照要求完成下面的题目
*1.创建一个List,在List中增加三个工人,基本信息如下:
* 姓名 年龄 工资
* zhang3 18 3000
* li4 25 3500
* wang5 22 3200
*2.在li4之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300
*3.删除wang5 的信息
*4.利用for 循环遍历,打印List 中所有工人的信息
*5.利用迭代遍历,对List中所有的工人调用work 方法。
*6.为工人类Worker重写equals方法,当姓名、年龄、工资全部相等时候才返回true
* @author WDD
*
*/
public class Main {
public static void main(String[] args) {
ArrayList<Worker> list = new ArrayList<>();
list.add(new Worker("zhang3", 18, 3000));
list.add(new Worker("li4", 25, 3500));
list.add(new Worker("wang5", 22, 3200));
//在li4之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300
list.add(1, new Worker("zhao6", 24, 3300));
//删除wang5 的信息
list.remove(3);
//利用for 循环遍历,打印List 中所有工人的信息
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).toString());
}
//利用迭代遍历,对List中所有的工人调用work 方法。
Iterator<Worker> i = list.iterator();
while (i.hasNext()) {
i.next().work();
}
}
}
import java.util.HashMap;
import java.util.Map;
/*
* 统计一个字符串中每个字符出现的次数,保存到HashMap集合中
*/
public class Main {
public static void main(String[] args) {
String str = "asdfjk2348uj;sdjf89234-8-asjsf";
// Map<String, Integer> map = new HashMap<String, Integer>();
// 方式1
/*for (int i = 0; i < str.length(); i++) {
String c = str.charAt(i) + "";
// if (map.containsKey(c)) {
// // 如果出现该字符,则次数+1
// int count = map.get(c);
// count++;
// map.put(c, count);
// } else {
// // 如果从示出现过,则设置次数为1
// map.put(c, 1);
// }
map.put(c, map.containsKey(c)?map.get(c)+1:1);
}
System.out.println(map);*/
// 方式2
// while(!str.isEmpty()){
// String c = str.charAt(0)+"";
// String newStr = str.replace(c, "");
// map.put(c,str.length()-newStr.length());
// str=newStr;
// }
// System.out.println(map);
// 方式3
Map<Character, Integer> map=new HashMap<Character, Integer>();
for(int i=0;i<str.length();i++){
char c = str.charAt(i);
if(map.containsKey(c)){
map.put(c, map.get(c)+1);
}else{
map.put(c, 1);
}
}
System.out.println(map);
}
}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
/*
* 定义一个学生类Stu
* 属性:id、name、age
*
* 1.提示用户循环输入学生的信息,存储到ArrayList集合中
* 2.输出所有学生的信息
* 3.根据学号修改指定学生信息
* 4.根据学号删除学生
*/
public class Main {
static Scanner input = new Scanner(System.in);
static List<Stu> list = new ArrayList<Stu>();
public static void main(String[] args) {
inputStudentInfo();
printStudentInfo();
System.out.print("请输入要修改的学生学号:");
int id = input.nextInt();
modifyById(id);
System.out.print("请输入要删除的学生学号:");
removeById(input.nextInt());
}
// 输入学生信息
public static void inputStudentInfo() {
while (true) {
System.out.println("-----请输入学生信息------");
Stu stu = new Stu();
System.out.print("请输入学号:");
int id = input.nextInt();
if (id == 0) {
break;
}
stu.setId(id);
System.out.print("请输入姓名:");
stu.setName(input.next());
System.out.print("请输入年龄:");
stu.setAge(input.nextInt());
list.add(stu);
}
}
// 输出学生信息
public static void printStudentInfo() {
System.out.println("===============学生信息如下=================");
System.out.println("学号\t姓名\t年龄");
for (Stu stu : list) {
System.out.println(stu.getId() + "\t" + stu.getName() + "\t"
+ stu.getAge());
}
}
// 根据学号修改学生信息
public static void modifyById(int id) {
// 查找判断学生是否存在
Stu stu = findById(id);
if (stu == null) {
System.out.println("指定学号的学生不存在!");
return;
}
// 修改学生信息
System.out.print("请输入要修改的姓名:");
String name = input.next();
stu.setName(name);
System.out.print("请输入要修改的年龄:");
int age = input.nextInt();
stu.setAge(age);
System.out.println("修改成功!");
printStudentInfo(); // 显示修改后的学生信息
}
// 根据学号查找学生
public static Stu findById(int id) {
Iterator<Stu> it = list.iterator();
while (it.hasNext()) {
Stu stu = it.next();
if (stu.getId() == id) {
return stu;
}
}
return null;
}
// 根据学号删除学生
public static void removeById(int id){
Stu stu = findById(id);
if (stu == null) {
System.out.println("指定学号的学生不存在!");
return;
}
list.remove(stu);
System.out.println("删除成功!");
printStudentInfo(); //显示删除后的学生信息
}
}
class Stu {
private int id;
private String name;
private int age;
public Stu() {
super();
}
public Stu(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
@Override
public String toString() {
return "Stu [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}