import java.util.*;
public class TestListSet {
public static void main(String[] args) {
List<String>list = new ArrayList<String>();
list.add("Hello");
list.add("Learn");
list.add("Hello");
list.add("Welcome");
Set<String>set = new HashSet<String>();
set.addAll(list);
System.out.println(set.size());
}
}
选择正确的答案
A.编译不通过
B.编译通过,运行时异常
C.编译运行都正常,输出3
D.编译运行都正常,输出4
答:C
import java.util.ArrayList;
import java.util.List;
class Worker {
private int age;
private String name;
private double salary;
public Worker(){}
public Worker(String name, int age, double salary) {
this.age = age;
this.name = name;
this.salary = salary;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public void work(){
System.out.println(name + " work");
}
public int hashCode(){
//1
}
public boolean equals(Object obj) {
if(this == obj){
return true;
}
if(obj == null){
return false;
}
if(obj.getClass() != this.getClass()){
return false;
}
Worker w = (Worker)obj;
if(this.name.equals(w.name) && this.age == w.age && this.salary == w.salary){
return true;
}
return false;
}
}
public class TestWorker{
public static void main(String[] args){
Worker worker1 = new Worker("zhang3",18,3000.0);
Worker worker2 = new Worker("li4",25,3500.0);
Worker worker3 = new Worker("wang5",22,3200.0);
Worker worker4 = new Worker("zhao6",24,3300.0);
List worker = new ArrayList();
worker.add(worker1);
worker.add(worker2);
worker.add(worker3);
worker.add(1, worker4);
worker.remove(worker3);
for(int i = 0 ; i < worker.size() ; i++){
System.out.println(((Worker) worker.get(i)).getName() + "\t" + ((Worker) worker.get(i)).getAge() + "\t" + ((Worker) worker.get(i)).getSalary());
}
for(int i = 0 ; i < worker.size() ; i++){
((Worker) worker.get(i)).work();
}
System.out.println(worker1.equals(worker2));
}
}
在1处有几种写法:
a.
return 0;
b.
int result = 0 ;
if(name != null)
result = name.hashCode();
return result + age;
c.
```java
return super.hashCode();
现在要把Worker类放入HashSet中,并希望在HashSet中没有重复元素,则下面说法正确的是:
A.三种说法都正确
B.a,b写法正确,c的效率更高
C.b写法正确,a,b写法都不正确
答:B
import java.util.*;
class Worker {
int age;
String name;
double salary;
public Worker(){}
public Worker(String name, int age, double salary) {
this.age = age;
this.name = name;
this.salary = salary;
}
int hashCode(){
return name.hashCode() + age + salary;
}
public boolean equals(Worker w) {
if(w.name == name && w.salary == salary && w.age == age){
return true;
}else{
return false;
}
}
}
public class TestWorker{
public static void main(String[] args){
Set<Worker> set = new HashSet<Worker>();
set.add(new Worker("tom",18,2000));
set.add(new Worker("tom",18,2000));
set.add(new Worker(0,"jerry",18,2000));
System.out.println(set.size());
}
}
答:修改为
public int hashCode(){
return name.hashCode() + age + (int)salary;
}
public boolean equals(Object obj) {
if(this == obj){
return true;
}
if(obj == null){
return false;
}
if(obj.getClass() != this.getClass()){
return false;
}
Worker w = (Worker)obj;
if(w.name.equals(name)&& w.salary == salary && w.age == age){
return true;
}else{
return false;
}
}
set.add(new Worker("jerry",18,2000));
import java.util.*;
class Worker {
private int age;
private String name;
private double salary;
public Worker(){}
public Worker(String name, int age, double salary) {
this.age = age;
this.name = name;
this.salary = salary;
}
public int hashCode(){
return this.name.hashCode() + this.age + (int)this.salary;
}
public boolean equals(Object obj) {
if(this == obj){
return true;
}
if(obj == null){
return false;
}
if(obj.getClass() != this.getClass()){
return false;
}
Worker w = (Worker)obj;
if(w.name.equals(this.name)&& w.salary == this.salary && w.age == this.age){
return true;
}else{
return false;
}
}
}
public class TestWorker{
public static void main(String[] args){
Set<Worker> set = new HashSet<Worker>();
set.add(new Worker("tom",18,2000));
set.add(new Worker("tom",18,2000));
set.add(new Worker("jerry",18,2000));
System.out.println(set.size());
}
}
import java.util.HashMap;
import java.util.Scanner;
public class TestFoodballCamption {
public static void main(String[] args) {
System.out.println("请输入一个年份:");
Scanner input = new Scanner(System.in);
int years = input.nextInt();
HashMap<Integer,String>map = new HashMap<Integer,String>();
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, "乌拉圭");
if(map.get(years) != null)
System.out.println(years+"获得世界杯冠军的是:"+map.get(years));
else
System.out.println(years + "未举办世界杯");
}
}
import java.util.HashMap;
public class TestTeacher {
public static void main(String[] args) {
HashMap<String,String>map = new HashMap<String,String>();
map.put("Tom", "CoreJava");
map.put("John", "Oracle");
map.put("Susan", "Oracle");
map.put("Jerry", "JDBC");
map.put("Jim", "Unix");
map.put("Kevin", "JSP");
map.put("Lucy", "JSP");
map.put("Allen","JDBC");
map.put("Lucy", "CoreJava");
for(Map.Entry entry : map.entrySet())
System.out.println( entry.getKey() +"\t"+ map.get(entry.getKey()));
for(Map.Entry entry : map.entrySet()){
if(map.get(entry.getKey()) == "JSP")
System.out.println(entry.getKey());
}
}
}
import java.util.*;
class Student{
int age;
String name;
public Student(){}
public Student(String name , int age){
this.name = name;
this.age = age;
}
public int hashCode(){
return name.hashCode() + age;
}
public boolean equals(Object o){
if(o == null)
return false;
if(o == this)
return true;
if(o.getClass() != this.getClass())
return false;
Student stu = (Student)o;
if(stu.name.equals(name) && stu.age == age)
return true;
else
return false;
}
}
public class TestHashSet {
public static void main(String[] args) {
Set<Student>set = new HashSet<Student>();
Student stu1 = new Student();
Student stu2 = new Student("Tom",18);
Student stu3 = new Student("Tom",18);
set.add(stu1);
set.add(stu2);
set.add(stu3);
System.out.println(set.size());
}
}
下列说法正确的是:
A.编译错误
B.编译正确,运行时异常
C.编译运行都正常,输出结果为3
D.编译运行都正确,输出结果为2
答:B
import java.util.HashMap;
import java.util.Scanner;
public class TestFoodballCamption {
public static void main(String[] args) {
System.out.println("请输入一个年份:");
Scanner input = new Scanner(System.in);
int years = input.nextInt();
HashMap<Integer,String>map = new HashMap<Integer,String>();
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, "乌拉圭");
if(map.get(years) != null)
System.out.println(years+"获得世界杯冠军的是:"+map.get(years));
else
System.out.println(years + "未举办世界杯");
}
}
增加如下功能:读读入一只球队的名字,输出该球队夺冠的年份列表
答:
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class TestFoodballCamption {
public static void main(String[] args) {
System.out.println("请输入一支球队的名字:");
Scanner input = new Scanner(System.in);
String fc = input.next();
HashMap<Integer,String>map = new HashMap<Integer,String>();
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, "乌拉圭");
int i = 0;
for(Map.Entry entry : map.entrySet()){
if(map.get(entry.getKey()).equals(fc)){
i++;
System.out.println(fc+"获得世界杯冠军的年份是:"+entry.getKey());
}
}
if(i == 0)
System.out.println(fc + "未获得世界杯");
}
}
import java.util.*;
public class TestStringNumber {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = input.next();
Map<Character,Integer> map = new HashMap<Character,Integer>();
for (char chr : str.toCharArray()) {
if(map.get(chr) == null)
map.put(chr, 1);
else
map.put(chr, map.get(chr) + 1);
}
System.out.println(map.entrySet());
}
}