zoukankan      html  css  js  c++  java
  • Java基础——集合



            java的集合类是一个工具类,存放在java.util包中。它不仅可以存储对象,也可以实现常用数据结构,如栈、队列等。严格的说,集合类存放的是对象的引用,而不是对象本身。

            java集合主要由这两个接口派生产生:Collection和Map。Collection体系中又包括Set,Queue,List。其中Collection和Map是java集合框架的根接口,他们又包括了一些子接口和实现类。


    一、Collection集合体系



           在Collection体系中,有三个子接口List、Set和Queue。每个子接口下列举了常用的实现类或接口。比如List下的ArrayList,Set下的HashSet等。

           Collection中提供了集合的基本操作,其中方法的使用我们后面会涉及到。

    public interface Collection<E> extends Iterable<E> {
        // Query Operations
    	//查询操作
    
        int size();
        boolean isEmpty();
        boolean contains(Object o);
        Iterator<E> iterator();
        Object[] toArray();
        <T> T[] toArray(T[] a);
    
        // Modification Operations
    	//修改操作
    	
        boolean add(E e);
    
        boolean remove(Object o);
    
        // Bulk Operations
    	//批量操作
        boolean containsAll(Collection<?> c);
    
        boolean addAll(Collection<? extends E> c);
    
        boolean removeAll(Collection<?> c);
    
        boolean retainAll(Collection<?> c);
    
        void clear();
    
       // Comparison and hashing
       //比较和哈希
       
        boolean equals(Object o);
    
        int hashCode();
    }


    1)List



    List集合是元素有序可重复的。

    他和数组十分类似,List的长度可以改变。


    Demo:

    public static void main(String[] args){
    			
    		List list=new ArrayList();
    		
    		System.out.println("===开始放入===");
    		list.add("a");
    		System.out.println("list集合存入一个元素===");
    		list.add("b");
    		System.out.println("list集合存入一个元素===");
    		list.add("b");
    		System.out.println("list集合存入一个元素===");
    		
    		System.out.println("===开始读取===");
    		for (int i = 0; i < list.size(); i++) {
    			System.out.println("读取list的第【"+i+"】个元素,元素是:"+list.get(i));
    		}
    		
    	}

    输出:



    2)Set



    Set集合中的元素是无序的,可以重复的。就像一个盒子一样,他的个体都是去重的,不允许添加重复的元素。而正因为他只是个“盒子”或者“罐子”,无法维护元素的顺序。


    3)Queue



    Queue是模拟队列的,大家都知道,队列是FIFO先进先出的。与List、Set相比,除了Collection接口中定义的基本方法外,Queue就需要一些自己的方法了。


    比如:

    offer()        将元素加入队列尾部

    poll()          获取队列头部元素,并删除。

    element()  获取队列头部元素

    peek()       获取队列头部元素,如果队列为空,返回null。


    Demo:

    public static void main(String[] args){
    		
    		PriorityQueue priorityQueue=new PriorityQueue();
    		//存入四个元素
    		priorityQueue.offer(2);
    		priorityQueue.offer(4);
    		priorityQueue.offer(6);
    		priorityQueue.offer(8);
    		//输出队列
    		System.out.println("队列元素:"+priorityQueue);
    		//获取队列的头部的元素
    		System.out.println("头部元素:"+priorityQueue.element());
    		
    	}


    输出:



    二、Map集合体系



    上图简单描述了map体系结构,map就有映射的意思,所有map的实现类都是用于保存具有映射关系的数据,即相关联的数组,key-value的键值对。




    Map集合也像一个“罐子”、“盒子”,与Set盒子最大的不同是,他里面的每个数据都由每两个值组成。


    Demo:

    	public static void main(String[] args){
    		//定义map,放入元素	
    		Map map=new HashMap();
    		map.put("name", "Sherry");
    		map.put("sex", 1);
    		map.put("score", 98);
    		//输出map
    		System.out.println(map);
    		System.out.println("是否包含“name”key:"+map.containsKey("name"));
    		System.out.println("========================");
    		//遍历map集合
    		for(Object key:map.keySet()){
    			System.out.println(key+"-->"+map.get(key));
    		}
    		
    	}


    输出:




  • 相关阅读:
    Windows 10 Universal App 开发记录
    Windows Phone 8.1 开发会用到的方法
    Android Activity设置全屏
    Android视频录制命令screenrecord
    Android ScrollView中嵌套ListView只显示一行的解决办法
    Android 4.4.4: java.lang.SecurityException: Package com.android.settings does not belong to 1001
    自定义Android spinner样式并添加监听事件
    GSON快速实现内部类
    android的Banner轮播图框架
    Okhttp与Okhttputils的用法及区别
  • 原文地址:https://www.cnblogs.com/saixing/p/6730238.html
Copyright © 2011-2022 走看看