A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 不二晨 金牌黑马   /  2018-10-16 09:18  /  931 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

集合 的体系:
------------| Collection 单例集合的根接口
----------------| List  如果是实现了List接口的集合类,具备的特点: 有序,可重复。
-------------------| ArrayList  ArrayList 底层是维护了一个Object数组实现的。 特点: 查询速度快,增删慢。
-------------------| LinkedList LinkedList 底层是使用了链表数据结构实现的, 特点: 查询速度慢,增删快。
-------------------| Vector(了解即可)  底层也是维护了一个Object的数组实现的,实现与ArrayList是一样的,但是Vector是线程安全的,操作效率低。
----------------| Set  如果是实现了Set接口的集合类,具备的特点: 无序,不可重复。
笔试题: 说出ArrayLsit与Vector的区别?
相同点: ArrayList与Vector底层都是使用了Object数组实现的。
不同点:
  1. ArrayList是线程不同步的,操作效率高。
     Vector是线程同步的,操作效率低。
  2. ArrayList是JDK1.2出现,Vector是jdk1.0的时候出现的。
package lx4;
import java.util.Enumeration;
import java.util.Vector;
public class Demo4 {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                Vector v=new Vector();
                v.addElement("环境");
                v.addElement("解决");
                v.addElement("就是");
                Enumeration e=v.elements();
                while(e.hasMoreElements()) {
                        System.out.println(e.nextElement());
                }
        }

}

例题:
使用LinkedList存储一副扑克牌,然后实现洗牌功能。

package lx5;
import java.util.LinkedList;
import java.util.Random;

//扑克类
class Poker{
        String color;
        String num;
        public Poker(String color,String num) {
                super();
                this.color=color;
                this.num=num;

        }
       
        public String toString() {
                return "{"+color+num+"}";
        }
}
public class Demo5 {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                LinkedList pokers =createPoker();
                shufflePoker(pokers);
                showPoker(pokers);

        }
       
        //生成扑克牌的方法
        public static LinkedList createPoker() {
                LinkedList list=new LinkedList();
                String[] colors= {"黑桃","红桃","梅花","方块"};
                String[] nums = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
                for(int i=0;i<nums.length;i++) {
                        for(int j=0;j<colors.length;j++) {
                                list.add(new Poker(colors[j],nums));
                        }
                }
                return list;
        }
       
        //洗牌的功能
        public static void shufflePoker(LinkedList pokers) {
                Random random =new Random();
                for(int i=0;i<100;i++) {
                        int index1=random.nextInt(pokers.size());
                        int index2=random.nextInt(pokers.size());
                        Poker poker1 =(Poker)pokers.get(index1);
                        Poker poker2 =(Poker)pokers.get(index2);
                        pokers.set(index1, poker2);
                        pokers.set(index2, poker1);               
                       
                }
        }
       
        //显示扑克牌
        public static void showPoker(LinkedList pokers) {
                for(int i=0;i<pokers.size();i++) {
                        System.out.print(pokers.get(i));
                        if(i%10==9) {
                                System.out.println();
                        }
                }
        }
       
       
       

}

---------------------
【转载】
作者:江南233244
原文:https://blog.csdn.net/qq_3913124 ... 723?utm_source=copy


3 个回复

正序浏览
回复 使用道具 举报
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马