zoukankan      html  css  js  c++  java
  • java学习基础知识七

    一、java集合概述
    1、java集合类存放于java.util包中,是一个用来存放对象的容器。
      →集合只能存放对象。
      →集合存放的是多个对象的引用,对象本身还是放在堆内存中
      →集合可以存放不同类型,不限数量的数据类型
    2、java集合可分为Set、List、和Map三大体系
      Set:无序,不可重复的集合
      List:有序,可重复的集合
      Map:具有映射关系的集合
      在JDK5之后,增加了泛型,java集合可以记住容器中对象的数据类型

    二、HashSet:HashSet是Set接口的典型实现,按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能。
    1、HashSet具有以下特点:
      →不能保证元素的排列顺序;
      →不可重复;
      →HashSet不是线程安全的;
      →集合元素可以使null
    2、当向HashSet集合中存入一个元素时,HashSet会调用该对象的hashCode()方法来得到该对象的hashCode值,
      然后根据hashCode值决定返回对象在HashSet中的存储位置。

    三、TreeSet:TreeSet是SortedSet接口的实现类,TreeSet可以确保集合元素处于排序状态。
      TreeSet支持两种排序方法:自然排序和定制排序。默认情况下,TreeSet采用自然排序

      

    Person p1=new Person("张三",25);
            Person p2=new Person("李四",23);
            Set<Person> s=new TreeSet<Person>(new Person());
            s.add(p1);
            s.add(p2);
            //System.out.println(s);
            
            for(Person p:s){
                System.out.println(p.name+"	"+p.age);
            }
            
            /**
     * 声明一个Person类
     * 包含变量name和age
     * @author 小虞哥哥
     *
     */
    class Person implements Comparator<Person>{        //把person对象存到TreeSet中并按照年龄排序
        int age;
        String name;
        
        public Person(){}
        
        public Person(String name,int age){
            this.name=name;
            this.age=age;
        }
        
        @Override
            public int compare(Person o1, Person o2) {    //按照年龄正序排列
            if(o1.age>o2.age){
                return 1;
            }else if(o1.age<o2.age){
                return -1;
            }else{
                return 0;
            }
        }
    }

    四、List与ArrayList
    1、List代表一个元素有序、且可重复的集合,集合中的每个元素都有其对应的顺序索引
    2、List允许使用重复元素,可以通过索引来访问指定位置的集合元素。
    3、List默认按元素的添加顺序设置元素的索引
    4、List集合里添加了一些根据索引来操作集合元素的方法
    注:ArrayList和Vector是List接口的两个典型实现,区别如下:
      →Vector是一个古老的集合,通常建议使用ArrayList;
      →ArrayList是线程不安全的,而Vector是线程安全的;
      →即使为保证List集合线程安全,也不推荐使用Vector

    五、Map:用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的Key,另外一组用于保存Map里的Value
    1、Map中的Key和Value都可以是任何引用类型的数据
    2、Map中的Key不允许重复
    3、Key和Value之间存在单向一对一关系,即通过指定的Key总能找到唯一的,确定的Value

    六、TreeMap:存储Key-Value对时,需要根据key对key-value对进行排序。TreeMap可以使所有的key-value对处于有序状态

    七、操作集合的工具类:Collections:是一个操作Set、List和Map等集合的工具类
    1、排序操作:
      →reverse(List):反转List中元素的顺序
      →shuffle(List):对List集合元素进行随机排序
      →sort(List):根据元素的自然顺序对指定List集合元素按升序排序
      →sort(List,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序
      →swap(List,int,int):将指定list集合中的i处元素和j处元素进行交换
    2、查找、替换
      →Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素
      →Object max(Collection,Comparator):根据Comparator指定的顺序,返回给定集合中的最大元素
      →同理可得min
      →int frequency(Collection,Object):返回指定集合中指定元素的出现次数
      →boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换旧值

    八、同步控制:Collection类中提供了多个synchronizedXxx()方法,该方法可将指定集合包装成线程同步的集合,从而解决多线程并发访问集合时的线程安全问题

  • 相关阅读:
    微信公众号,图片预览功能 有单个图片,
    MUI
    MUI学习01-顶部导航栏
    php验证18位身份证,准到必须输入正确的身份证号,
    微信sdk 图片上传 两种方法 上传一张显示一张 并附带微信图片放大功能和删除功能
    jQuery实现限制input框 textarea文本框输入字符数量的方法
    js jq 手机号实现(344) 附带删除功能 jq 实现银行卡没四个数加一个空格 附带删除功能
    山东省2016acm省赛
    East Central North America Region 2015
    North America Qualifier (2015)
  • 原文地址:https://www.cnblogs.com/MeiToufu/p/14337245.html
Copyright © 2011-2022 走看看