集合框架和接口 练习

1、定义一个方法listTest(ArrayList al, Integer s),要求返回s在al里面第一次出现的索引,如果s没出现过返回-1

import java.util.ArrayList;
import java.util.List;

public class work {
	public static void main(String[] args) {
	    List<Integer> list = new ArrayList<Integer>();
	    list.add(7);
	    list.add(4);
	    list.add(2);
	    list.add(1);
	    list.add(5);
	    list.add(2);
	    System.out.println(ListTest(list, 2));
	    System.out.println(list.indexOf(7));
    }

    public static int ListTest(List<Integer> al, Integer s) {
	    for(int i = 0; i < al.size(); i++) {
		    if(al.get(i).equals(s)) {
			    return i;
		    }
	    }
	    return -1;
    }
}

2、现在有一个map集合如下:
在这里插入图片描述

import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;
import java.util.Set;

public class Work2 {
	public static void main(String[] args){
		Map<Integer,String> map = new HashMap<Integer, String>( );
		
		map.put(1, "张三丰");
		map.put(2, "周芷若");
		map.put(3, "汪峰");
		map.put(4, "灭绝师太");
		
		
		Set<Integer> set = map.keySet();
	    Iterator<Integer> it = set.iterator();
	    while(it.hasNext()) {
		    Integer key = it.next();
		    System.out.println("序号为:" + key + ",姓名为:" + map.get(key));
	    }
		
		map.put(5, "李晓红");
		map.remove(1);
		map.put(2, "周林");
	}
}

3、有2个数组,第一个数组内容为:[黑龙江省,浙江省,江西省,广东省,福建省],第二个数组为:[哈尔滨,杭州,南昌,广州,福州],将第一个数组元素作为key,第二个数组元素作为value存储到Map集合中。如{黑龙江省=哈尔滨, 浙江省=杭州, …}。

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

public class Work3 {
	public static void main(String[] args) {
		String[] sz1 = {"黑龙江省", "浙江省", "江西省", "广东省", "福建省"};
        String[] sz2= {"哈尔滨", "杭州", "南昌", "广州", "福州"};
        
        Map<String, String> map = new HashMap<>();
        
       for(int i=0;i<sz1.length;i++){
        	map.put(sz1[i],sz2[i]);
        }
   
        	System.out.println(map);
	}
}

4、在设计LOL的时候,进攻类英雄有两种,一种是进行物理系攻击,一种是进行魔法系攻击 这时候,就可以使用接口来实现这个效果。 接口就像是一种约定,我们约定某些英雄是物理系英雄,那么他们就一定能够进行物理攻击
在这里插入图片描述

/**
*英雄基类
*/

public class Hero {
	public String name;
	public int hp;//生命值
	public int mp;//魔法值
	public double speed;//移动速度
	public int defense;//防御值
	public int attackPower;//攻击力
	public Hero(String name, int hp, int mp, double speed, int defense, int attackPower) {
		super();
		this.name = name;
		this.hp = hp;
		this.mp = mp;
		this.speed = speed;
		this.defense = defense;
		this.attackPower = attackPower;
	}
	public Hero() {
		super();
	}
}

/**
*物理系攻击接口
*/

public interface AD {
	//物理伤害方法
	public void physicalAttack();
}

/**
*物理系英雄
*/
public class ADHero extends Hero implements AD {

	@Override
	public void physicalAttack() {
		System.out.println("正在使用物理攻击");
	}
}

/**
*魔法系接口
*/

public interface AP {
	/**
	 * 魔法攻击方法
	 */
	public void magicAttack();
}

/**
*魔法系英雄
*/
public class APHero extends Hero implements AP {

	@Override
	public void magicAttack() {
		System.out.println("正在进行魔法攻击");
	}
}

public class ADAPHero extends Hero implements AD, AP{

	@Override
	public void magicAttack() {
		System.out.println("又进行魔法攻击");
	}

	@Override
	public void physicalAttack() {
		System.out.println("又进行物理攻击");
	}
}

/**
*辅助英雄接口
*/
public interface SUP {
	public void support();
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值