#千锋逆战班#

在千锋学习的第25天。

今天学习了集合中Set和Map,主要掌握HashSet 和HashMap

熟悉主要的方法 这两的特点是无序,无下标,集合元素不可重复

package com.lichen.ti;
import java.util.*;
public class TestListset {

	public static void main(String[] args) {
		List <String> list =new ArrayList <String>();
		list.add("Hello");
		list.add("Lean");
		list.add("Hello");
		list.add("Welcome");
		Set<String> set =new HashSet<String>();
		set.addAll(list);
		System.out.println(set.size());
		

	}

}



输出 编译正常,输出三

 

package com.lichen.ti;
import java.util.*;
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(0,new Worker("jerry",18,2000));
		System.out.println(set.size());
		for (Worker w : set) {
			System.out.println(w.toString());
			
		}
		
	}

}
class Worker1{
	String name;
	int age ;
	double salary;
	public Worker(){}
	public Worker(String name, int age, double salary) {
		super();
		this.name = name;
		this.age = age;
		this.salary = salary;
	}
	
	@Override
	public String toString() {
		return "Worker [name=" + name + ", age=" + age + ", salary=" + salary + "]";
	}
	, int hashCode(){
		System.out.println("运行了");
		return  name.hashCode()+age +salary;
		
	public boolean equals(Worker w){
		if(this.name==w.name&&this.age==w.age&&this.salary==w.salary){
			return true ;
		}else{
			return false ;
		}
		/*if(w.name ==name&&w.salary==salary&&w.age==age){
			return true ;
		}else{
			return false;
		}*/
	}
}




set。add 无下标  所以不能有0
hashCode 应该有公共类public修饰
return 返回时应该强转int 
package com.lichen.ti;

import java.util.HashSet;
import java.util.Set;

public class TestWorker1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Set<Worker> set =new HashSet<Worker>();
		set.add(new Worker("tom",18,2000.0));
		set.add(new Worker("tom",18,2000.0));
		set.add(new Worker("jerry",18,2000.0));
	
		for (Worker w : set) {
			System.out.println(w.toString());
			
		}
		
	}

}
class Worker{
	String name;
	int age ;
	double salary;
	public Worker(){}
	public Worker(String name, int age, double salary) {
		super();
		this.name = name;
		this.age = age;
		this.salary = salary;
	}
	
	@Override
	public String toString() {
		return "Worker [name=" + name + ", age=" + age + ", salary=" + salary + "]";
	}
	public int hashCode(){
		System.out.println("运行了");
		//return (int) (name.hashCode()+age +salary);
		return (int)(this.name.hashCode()+this.age+this.salary);
	}
	public boolean equals(Object w){
		if(this==w){
			return true;
		}
		if(w ==null){
			return false;
		}
		if(this.getClass()!=w.getClass()){
			return false;
		}
		Worker wo =(Worker)w;
		if(this.name.equals(wo.name)&&this.age==wo.age&&this.salary==w.salary){
			return true ;
		}else{
			return false ;
		}
		/*if(w.name ==name&&w.salary==salary&&w.age==age){
			return true ;
		}else{
			return false;
		}*/
	}
}
(Map)关于Map常见的方法
1 put方法表示放入一个键值时如果键已存在则覆盖,如果键不存在则插入放入
2 remove 方法接受一个参数,表示删除键所对应的数据和键
3,get方法表示获取键对应的数据     get方法的参数表示键      返回值表示  键所对应的数据 
4要想获得Map中的所有键应该使用方法keySet()    该方法的返回值类型为 Set   
5 要想获得Map中所有的值,应该使用方法entrySet     该方法返回值类型为Ste
                                                                                                                                                        

利用MAP 完成下面的功能

从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪只球队,如果该年没有举办世界杯,则输出没有举办世界杯

package com.lichen.ti;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class TestHashMap1 {

	public static void main(String[] args) {
		Scanner  input =new Scanner(System.in);
		
		Map<String,String> map =new HashMap<String,String>();
		map.put("1903", "乌拉圭");
		map.put("1934", "意大利");
		map.put("1938", "意大利");
		map.put("1950", "乌拉圭");
		
		map.put("1954", "巴西");
		map.put("1958", "巴西");
		map.put("1962", "巴西");
		map.put("1966", "英格兰");
		map.put("1970", "巴西");
		map.put("1974", "德国");
		map.put("1978", "阿根廷");
		map.put("1982", "意大利");
		map.put("1986", "阿根廷");
		
		
		System.out.println("请输入年份");
		String str  =input.next();
		if(map.get(str)!=null){
			System.out.println(str+"年获得的冠军为"+map.get(str));
		}else{
			System.out.println("没有夺冠的");
		}







question 10-11

package com.lichen.ti;

import java.util.HashMap;
import java.util.Map;

public class TestMap2 {

	public static void main(String[] args) {
		Map<String,String> map =new HashMap<String,String>();
		map.put("Tom", "CoreJave");
		map.put("John", "Oracl");
		map.put("Susan", "Oracl");
		map.put("Jerry", "JDBC");
		map.put("Jim", "Unix");
		map.put("Kevin", "Jsp");
		
		map.put("Lucy", "Jsp");
		map.put("Allen", "JDBC");
		map.put("Lucy","JDBC");
		for (String string : map.keySet()) {
			System.out.println(string +"老师授课为"+map.get(string));
		}
		for (String str : map.keySet()) {
			if(map.get(str).equals("Jsp")){
				System.out.println("教Jsp的老师为"+str);
			}
			
		}
		
	}

}
package com.lichen.ti;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class TestHashMap1 {

	public static void main(String[] args) {
		Scanner  input =new Scanner(System.in);
		
		Map<String,String> map =new HashMap<String,String>();
		map.put("1903", "乌拉圭");
		map.put("1934", "意大利");
		map.put("1938", "意大利");
		map.put("1950", "乌拉圭");
		
		map.put("1954", "巴西");
		map.put("1958", "巴西");
		map.put("1962", "巴西");
		map.put("1966", "英格兰");
		map.put("1970", "巴西");
		map.put("1974", "德国");
		map.put("1978", "阿根廷");
		map.put("1982", "意大利");
		map.put("1986", "阿根廷");
		
		
		System.out.println("请输入年份");
		String str  =input.next();
		if(map.get(str)!=null){
			System.out.println(str+"年获得的冠军为"+map.get(str));
		}else{
			System.out.println("没有夺冠的");
		}
		System.out.println("请输出国家的名字");
		String str2 =input.next();
		Map<String,String> map2 =new HashMap<String,String>();
		for (String string : map.keySet()) {
			if(map.get(string).equals(str2)){
				map2.put(string, str2);
			}
			if(map.isEmpty()){
				System.out.println(str2+"没有夺冠的");
			}else{
				System.out.println(str2+"夺冠的年份为"+map2.keySet());
			}
			
			
		}
		
	}

}
package com.lichen.ti;
import java.util.Scanner;
import java.util.HashMap;
import java.util.Map;

public class TestMap3 {

	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(int i =0;i<str.length();i++){
			Character ch=	str.charAt(i);
		if(map.get(ch)==null){
			map.put(ch, 1);
		}else{
			int in =map.get(ch);
			map.put(ch, in+1);
		}
		}
		System.out.println(map.entrySet());
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值