java总结--集合(二)

Map(掌握)

  1. 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。 
  2. Map和Collection的区别?
    A.Map 存储的是键值对形式的元素,键唯一,值可以重复。夫妻对
    B.Collection 存储的是单独出现的元素,子接口Set元素唯一,子接口List元素可重复。光棍
  3. Map接口功能概述
    A.添加功能:V put(K key,V value)
    B.删除功能:V put(K key,V value);void clear()
    C.判断功能:boolean containsKey(Object key);boolean containsValue(Object value);boolean isEmpty()
    D.获取功能:V get(Object key);
    E.长度功能:int size()
  4. Map集合的遍历
    A.键找值
          ①:获取所有键的集合
          ②:遍历键的集合,得到每一个键
          ③:根据键到集合中去找值
    B.键值对对象找键和值
           ①:获取所有的键值对对象的集合
           ②:遍历键值对对象的集合,获取每一个键值对对象
           ③:根据键值对对象去获取键和值
    C.代码体现
    Map<String,String> hm = new HashMap<String,String>();
    			
    			hm.put("it002","hello");
    			hm.put("it003","world");
    			hm.put("it001","java");
    			
    			//方式1 键找值
    			Set<String> set = hm.keySet();
    			for(String key : set) {
    				String value = hm.get(key);
    				System.out.println(key+"---"+value);
    			}
    			
    			//方式2 键值对对象找键和值
    			Set<Map.Entry<String,String>> set2 = hm.entrySet();
    			for(Map.Entry<String,String> me : set2) {
    				String key = me.getKey();
    				String value = me.getValue();
    				System.out.println(key+"---"+value);
    			}

Collections(理解)

  1. 是针对集合进行操作的工具类。
  2. Collection和Collections的区别
    A.Collection 是单列集合的顶层接口,有两个子接口List和Set
    B.Collections 是针对集合进行操作的工具类,可以对集合进行排序和查找等
  3. 常见的几个小方法:
    A.public static <T> void sort(List<T> list)
    B.public static <T> int binarySearch(List<?> list,T key)
    C.public static <T> T max(Collection<?> coll)
    D.public static void reverse(List<?> list)
    E.public static void shuffle(List<?> list)
  4. 模拟斗地主洗牌,发牌,并对牌进行排序
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Collections;
    
    /*模拟洗牌和发牌
    * 过程:
    *   创建一个牌盒;
    *   装牌;
    *   洗牌;
    *   发牌;
    *   看牌*/
    public class Test {
        public static void main(String[] args){
            ArrayList<String> array = new ArrayList<String>();
            //装牌:黑红梅方 a-k
            //定义一个花色数组
                String[] colors = {"♠","♥","♣","♦"};
                //定义一个点数数组
                String[] numbers = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
                for(String color :colors){
                for(String number: numbers){
                    array.add(color.concat(number));
                }
            }
            array.add("小王");
            array.add("大王");
            System.out.println("array:"+array);//新牌
            System.out.println("--------------------");
            //洗牌
            Collections.shuffle(array);
            System.out.println("array:"+array);
    
            //发牌
            ArrayList<String> preson1 = new ArrayList<String>();
            ArrayList<String> preson2 = new ArrayList<String>();
            ArrayList<String> preson3 = new ArrayList<String>();
            ArrayList<String> dipai = new ArrayList<String>();
    
            for(int i =0 ;i<array.size();i++){
                if(i>array.size()-4)
                    dipai.add(array.get(i));
                else if(i%3==0)
                    preson1.add(array.get(i));
                else if(i%3==1)
                    preson2.add(array.get(i));  
                else if(i%3==2)
                    preson3.add(array.get(i));
            }
            //看牌
            lookPoker("第一个人",preson1);
            lookPoker("第2个人",preson2);
            lookPoker("第3个人",preson3);
            lookPoker("底牌",dipai);
        }
        public static void lookPoker(String name,ArrayList<String> array){
            System.out.println(name+"的牌是:");
            for(String s :array){
                System.out.println(s+" ");
            }
            System.out.println();
        }
    }
    

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值