简述集合的概要

概念

Java中的集合就是一种容器,可以容纳不同种类的数据,这些容纳是建立在未知的基础上。

优点

1.可以动态保存任意多个对象,使用比较方便。

2.提供一系列方便的操作对象的方法:add、remove、set、get等

3.使用集合添加,删除新元素的示意代码简洁。

集合框架图

在这里插入图片描述

Collection接口和常用方法

1.Collection实现子类可以存放多个元素,每个元素可以是Object

2.有些Collection的实现类,可以存放重复的元素,有些不可以

3.有些Collection的实现类,有些是有序的(list),有些不是有序的(set)

4.Collection接口没有直接的实现子类,是通过他的子接口Set和List来实现的。

Collection接口常用方法

1.add 添加单个元素 2.remove 删除指定元素 3.contains 查找元素是否存在

4.size 获取元素个数 5.isEmpty 判断是否为空 6.clear 清空 7.addAll 添加多个元素

8.containsAll 查找多个元素是否都存在 9.removeAll 删除多个元素

Collection迭代器遍历元素

1.Iterator对象称为迭代器,主要用于遍历Collection集合中的元素

2.所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了

​ iterator接口的对象,即可以返回一个迭代器

3.Iterator仅用于遍历集合,它本身并不存放对象

for循环增强

增强for循环,可以代替iterator迭代器

特点:增强for就是简化版的iterator,本质一样,只能用于遍历集合或数组

基本语法
for(元素类型 元素名:集合名或数组名){
	访问元素
}
/**案例演示*/
public class Card {
    public static void main(String[] args) {
        /**
         *  1.准备牌
         *  2.洗牌
         *  3.发牌
         *  4.看牌*/
        //1.
        //创建一个牌盒
        ArrayList<String> BoxCard = new ArrayList<String>();
        //创建花色集合
        ArrayList<String> color = new ArrayList<String>();
        //创建数字集合
        ArrayList<String> numbers = new ArrayList<String>();
        //添加花色牌
        color.add("♠");
        color.add("♥");
        color.add("♦");
        color.add("♣");
        //创建数字牌
        for (int i = 2; i <=10 ; i++) {
            numbers.add(i+"");
        }
        numbers.add("J");
        numbers.add("Q");
        numbers.add("k");
        numbers.add("A");
        //把花色牌和数字牌添加到一个大牌盒
        for (String o:color) {
            for (String n : numbers) {
                String card = o + n;
                BoxCard.add(card);
            }
        }
        BoxCard.add("BigKing");
        BoxCard.add("SmallKing");
        //2.
        Collections.shuffle(BoxCard);
        System.out.println(BoxCard);
        //3.发牌
            //创建三个用户
        ArrayList<String> player1 = new ArrayList<String>();

        ArrayList<String> player2 = new ArrayList<>();
        ArrayList<String> player3 = new ArrayList<>();
        //递牌
        ArrayList<String> GiveCards = new ArrayList<>();

        for (int m = 0; m <BoxCard.size(); m++) {
            //获取牌面
            String cards = BoxCard.get(m);
            //发牌顺序余三张
            if (m>=51){
                GiveCards.add(cards);
            }else {
                if (m % 3 ==0){
                    player1.add(cards);//获取第一个玩家牌数
                }else if (m % 3 ==1){
                    player2.add(cards);//获取第二个玩家牌数
                }else {
                    player3.add(cards);//获取第三个玩家牌数
                }
            }
        }
        //看牌
        System.out.println("第一个玩家"+player1);
        System.out.println("第二个玩家"+player2);
        System.out.println("第三个玩家"+player3);
        System.out.println("底牌"+GiveCards);
    }
}

list接口和常用方法

1.list集合类中元素有序(及添加顺序和取出顺序一致)、可重复

2.list集合类中的每个元素都有其对应的顺序索引,及支持索引

3.list容器中的元素对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素

4.JDK API中list接口常用实现的类:ArrayList、LinkedList和Vector。

常用方法
1.add 添加单个元素   2.remove  删除指定元素 
    
public E get(int index)返回集合中指定位置
public E set(int index ,E element)用指定元素替换集合中指定位置的元素,返回值的更新前的元素
public class olg {
    public static void main(String[] args) {
        //创建集合对象
        List<String> list = new ArrayList<String>();
        //尾部添加指定数据
        list.add("光之子");
        list.add("神印王座");
        list.add("酒神");
        list.add("诸神黄昏");
        System.out.println(list);
        //指定位置添加
        list.add(1,"全职高手");
        System.out.println(list);
        //删除指定元素
        System.out.println(list.remove(3));
        list.set(1,"斗罗大陆");
        System.out.println(list);
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        //增强for
        for (String s:list){
            System.out.println(s);
        }
    }
}
ArrayList

java.util.ArrayList 集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能 为查询数据、遍历数据,所以 ArrayList 是最常用的集合。

LinkedList集合

java.util.LinkedList 集合数据存储的结构是链表结构。方便元素添加、删除的集合

常用方法
public void addFirst(E e) :将指定元素插入此列表的开头。

 public void addLast(E e) :将指定元素添加到此列表的结尾。

 public E getFirst() :返回此列表的第一个元素。

 public E getLast() :返回此列表的最后一个元素。 

public E removeFirst() :移除并返回此列表的第一个元素。

 public E removeLast() :移除并返回此列表的最后一个元素。

 public E pop() :从此列表所表示的堆栈处弹出一个元素。

 public void push(E e) :将元素推入此列表所表示的堆栈。

 public boolean isEmpty() :如果列表不包含元素,则返回true
public class Linked {
    public static void main(String[] args) {
        LinkedList<String> link = new LinkedList<String>();
        //添加第一个元素值
        link.addFirst("龙皓晨");
        link.addFirst("姬动");
        link.addFirst("叶音竹");
        link.addFirst("长弓威");
        System.out.println(link);
        //获取元素
        System.out.println(link.getFirst());//第一个值
        System.out.println(link.getLast());//最后一个值
        //删除元素
        System.out.println(link.removeFirst());
        System.out.println(link.removeLast());

        while (!link.isEmpty()){//判断集合是否为空
            System.out.println(link.pop());//弹出集合中的栈顶元素
        }
        System.out.println(link);
    }
}

Map集合(键值对集合)

现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等, 这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即 java.util.Map 接口。

HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重 复,需要重写键的hashCode()方法、equals()方法。

LinkedHashMap:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。 通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的 hashCode()方法、equals()方法。

常用方法
public V put(K key, V value)`: 把指定的键与指定的值添加到Map集合中。 

public V remove(Object key)`: 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的 值。`

public V get(Object key)` 根据指定的键,在Map集合中获取对应的值。 ` 

boolean containsKey(Object key) ` 判断集合中是否包含指定的键。 

public Set keySet()`: 获取Map集合中所有的键,存储到Set集合中。 

public Set> entrySet()`: 获取到Map集合中所有的键值对对象的集合(Set集合)
public class HashMapdemo {
    public static void main(String[] args) {
        //创建Map对象
        HashMap<String,String> map = new HashMap<String,String>();

        //添加元素到集合
        map.put("李世民","长孙皇后");
        map.put("1","朱元璋");
        System.out.println(map);

        //删除
        System.out.println(map.remove("1"));
        System.out.println(map);

        //查看李世民的皇后
        System.out.println(map.get("李世民"));
    }
}
   //添加元素到集合
        map.put("李世民","长孙皇后");
        map.put("1","朱元璋");
        System.out.println(map);

        //删除
        System.out.println(map.remove("1"));
        System.out.println(map);

        //查看李世民的皇后
        System.out.println(map.get("李世民"));
    }
}
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值