Java -Collections

  1. Collections概述

Collections是一个操作 Set、List 和 Map 等集合的工具类。

  1. 常用方法

排序操作:

  1. reverse(List): 反转 List 中元素的顺序
  2. shuffle(List):对 List 集合元素进行随机排序
  3. sort(List):根据元素的自然顺序对指定 List 集合元素按升序排序
  4. sort(List,Comparator): 根据指定的 Comparator 产生的顺序对 List 集合元素进行排序
  5. swap(List,int,int):将指定list 集合中的i处元素和j处元素进行交换

查找

  1. - 0bject max(Collection): 根据元素的自然顺序,返回给定集合中的最大元素
  2. Object max(Collection,Comparator): 根据 Comparator 指定的顺序,返回给定集合中的最大元素
  3. object min(Collection):根据元素的自然顺序,返回给定集合中的最小元素
  4. 0bject min(Collection,Comparator): 根据 Comparator 指定的顺序,返回给定集合中的最小元素
  5. int binarySearch(List list,T key)在List集合中查找某个元素的下标,但是List的元素必须是T或T的子类对象,而目必须是可比较大小的,即支持自然排序的。而且集合也事先必须是有序的,否则结果不确定。
  6. int binarySearch(List List,T key,Comparator c)在List集合中查找某个元素的下标,但是List的元素必须是T或T的子类对象,而且集合也事先必须是按照c比较器规则进行排序过的,否则结果不确定。
  7. int frequency(Collection c,object o):返回指定集合中指定元素的出现次数

复制、替换

  1. void copy(List dest,List src): 将src中的内容复制到dest中
  2. boolean replaceAll(List list,Object oldVal,Obiect newVal): 使用新值替换List 对象的所有旧值
  3. 提供了多个unmodifiableXxx0方法,该方法返回指定 Xxx的不可修改的视图。

添加

boolean addAll(Collection ,T... elements)将所有指定元素添加到指定 collection 中。

  1. 面试题,区分Collection 和 Collections

Collection:集合框架中的用于存储一个一个元素的接口,又分为List和Set等子接口。

Collections:用于操作集合框架的一个工具类。此时的集合框架包括:Set、List、Map。

模拟斗地主洗牌和发牌,牌没有排序效果如图。

提示:不要忘了大王、小王

String[] num = {"A","2","3","4","5","6","7","8","9","10","J","q","K"};String[] color = {"方片","梅花","红桃","黑桃”};

ArrayList poker = new ArrayList();

package Test0726;



import java.util.ArrayList;

import java.util.Collections;



public class PokerTest {

    public static void main(String[] args) {



        //1组成一副扑克牌

        String[] num = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};

        String[] color = {"方块","梅花","红桃","黑桃"};

        ArrayList poker = new ArrayList();



        for(int i = 0 ;i < color.length;i++){

            for(int j = 0; j < num.length;j++){

                poker.add(color[i] + " " +num[j]);

            }

        }

        //添加大小王

        poker.add("大王");

        poker.add("小王");

        //2洗牌

        Collections.shuffle(poker);



        //3发牌

        //3.1创建3个角色,和一个底牌

        ArrayList tom = new ArrayList();

        ArrayList LImin = new ArrayList();

        ArrayList Xiaohua = new ArrayList();

        ArrayList DP = new ArrayList();



        for(int i = 0;i < poker.size();i++){

            if (i >= poker.size() -3){

                DP.add(poker.get(i));

            }

            if (i%3 == 0){

                tom.add(poker.get(i));

            } else if (i%3 ==1) {

                LImin.add(poker.get(i));

            }else if(i%3 ==2 ){

                Xiaohua.add(poker.get(i));

            }

        }

        //3.2遍历显示

        System.out.print("Tom:");

        System.out.println(tom);

        System.out.print("LImin:");

        System.out.println(LImin);

        System.out.print("Xiaohua:");

        System.out.println(Xiaohua);

        System.out.print("底牌:");

        System.out.println(DP);

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值