Collection接口 (单列集合)

@[TOC
]

Collection接口 (单列集合)


1.Collection是单列集合里面最顶层的接口,定义了一些通用的方法

2.add(E e)添加元素 clear()清空元素 remove(E e)删除元素 size()元素数量;

3.toArray()集合转数组 contains(E e)判断元素是否包含 isEmpty()判断集合元素是否为空

List接口

  1. 特点:有索引 是可以准确地操作元素
  2. 元素有序,存储及取出时顺序一致
  3. 元素是可以重复的,通过equals()去比较是否重复
  4. 利用索引 定义一些特殊的方法
    • get(int index,E e)获取指定位置的元素;remove (int index)移除指定位置的元素;
    • add(int index,E e)将元素添加到指定位置;set (int index,E e)用元素替换指定位置的元素

ArrayList实现类


数组结构 ;数组 ;

特点 :查询快 增删慢 主要用于查询遍历数据,为最常用的集合之一 ;

底层分析 :数据结构是有序的元素序列,在内存中开辟一段连续的空间,在空间中存放元素,每个空间都有编号,通过编号可以快速的找到相应的元素,所以查询速度快。


LinkedList实现类

数据结构:双向链表

特点:查询慢 增删快

List集合的三种遍历方式

public static void main(String[] args) {
            List<Integer> list = new ArrayList<Integer>();
            //循环随机输入1到10以内的数
            for (int i=0;i<10;i++) {
                list.add((int)(Math.random()*11));
            }
            //遍历输出
            //方式1  for循环遍历输出
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
            //方式2 迭代器遍历
            Iterator<Integer> it =list.iterator();
            while (it.hasNext()){
                int str=it.next();
                System.out.println(str);
            }
            //方式3 foreach遍历
            for (Integer in:list) {
                System.out.println(in);
            }
        }

Map接口

  1. 双列集合:Map集合存储的元素都是成对出现的,Map元素的键是唯一的,值是可以重复。把这样的元素理解为:夫妻对

  2. Collection集合存储的元素都是单独出现的,Collection接口下面的Set是元素唯一的, List集合中元素是可以重复的

  3. 底层是哈希表数据结构,线程是不同步的,可以存入null键,null值。要保证键的唯一性,需要覆盖hashCode方法,和equals方法。

    1、添加:
    	1V put(K key, V value)    (可以相同的key值,但是添加的value值会覆
    盖前面的,返回值是前一个,如果没有就返回null2putAll(Map<? extends K,? extends V> m)  从指定映射中将所有映射关
    系复制到此映射中(可选操作)。
    2、删除
    	1remove()    删除关联对象,指定key对象
    	2clear()     清空集合对象
    3、获取
         1:value get(key); 可以用于判断键是否存在的情况。当指定的键不存在的时候,返
    回的是null3、判断:
    	1boolean isEmpty()   长度为0返回true否则false
        2boolean containsKey(Object key)  判断集合中是否包含指定的key
    3boolean containsValue(Object value)  判断集合中是否包含指定的value
    4、长度:
    Int size()
    

Map遍历方式


package com.sm.obj;

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

//Map遍历方式
public class Map1 {
 public static void main(String[] args) {
     Map<Integer,String> map=new HashMap<Integer,String>();
     map.put(1, "宿舍532");
     map.put(2, "宿舍531");
     map.put(4, "宿舍529");
     map.put(3, "宿舍530");
     System.out.println(map);

     //遍历方式
     //1.通过 使用keyset取出里面所有键,然后在通过get方法 获取其中对应的值

     Set<Integer> ks=map.keySet();
     Iterator<Integer> it=ks.iterator();
     while (it.hasNext()){
         Integer key=it.next();//相当于遍历
         String value=map.get(key);
         System.out.println("key:"+key+"value:"+value);

     }
     //2.通过Map中的entrySet()方法获取存放Map.Entry<K,V>对象的Set集合。
     //Set<Map.Entry<K,V>> entrySet()
     //面向对象的思想将map集合中的键和值映射关系打包为一个对象,就是Map.Entry
     //,将该对象存入Set集合,Map.Entry是一个对象,那么该对象具备的getKey,getValue获得键和值。

     //推荐使用的
     Set<Map.Entry<Integer,String>> set=map.entrySet();
     Iterator<Map.Entry<Integer,String>> itr=set.iterator();
     while (itr.hasNext()){
         //返回的是封装了key和value对象的Map.Entry对象
         Map.Entry<Integer,String>  en=itr.next();
         //获取Map.Entry对象里面的key和value对象
         Integer key=en.getKey();
         String value=en.getValue();
         System.out.println("key:"+key+" "+"value:"+value);
     }
 }
}

结果:

{1=宿舍532, 2=宿舍531, 3=宿舍530, 4=宿舍529}
key:1value:宿舍532
key:2value:宿舍531
key:3value:宿舍530
key:4value:宿舍529
key:1 value:宿舍532
key:2 value:宿舍531
key:3 value:宿舍530
key:4 value:宿舍529

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值