• java 集合


    方法覆写

    // 重写toSting方法

    @Override

    public String toString() {

    // TODO Auto-generated method stub

     

    return "name=" + name + ";age=" + age;

    }

    // 重写equals方法

     

    @Override

    public boolean equals(Object obj) {

    // TODO Auto-generated method stub

    Person p = null;

     

    if (obj instanceof Person) {

    // 需要强转

    p = (Person) obj;

     

    if (p.name.equals(this.name)) {

     

    return true;

     

    } else

    return false;

    } else

    return false;

     

    }

    String使用    

     字符串的构造方法

    //1.String(byte[] bytes)  通过字节数组来创建

    byte[] b = {97,98,99}; //65 A

    //2.String(byte[] bytes, int offset, int length)

     

           bytes - 要解码为字符的 byte

       offset - 要解码的第一个 byte 的索引

       length - 要解码的 byte

     String s2 = new String(b,1,2);

     

    Length( ) 获取字符串长度

    charAt( ) 获取特定位置的字符

     

    Indexof (  )  获取特定字符的位置

     

    indexOf(String s , int fromIndex) 需要在原字符串中搜索的字符串   fromIndex :从哪一个位置开始, 包含这个位置的

     

    lastInsexOf ( ) 获取最后一个字符的位置

     

    BOOLean 判断方法

    endsWith(String str) 是否以指定字符结束

     

     isEmpty()是否长度为0 如:“” null V1.6

     

    equals(Object anObject) 是否相等

     

    equalsIgnoreCase(String anotherString) 忽略大小写是否相等

     

    字符串的转换

    //valueOf(char[] data, int offset, int count)  从指定的位置和长度来转。

    //将字符串转为字符数组

    toCharArray(  )

     

    // String转为基本数据类型

            String s1 = "10";

    Integer i  =new Integer(s1);

     

     * 其他方法

       * String replace(char oldChar, char newChar) 替换//前面是你需要替换的字符 ,后面是替换成什么

         String[] split(String regex) 切割

         String substring(int beginIndex)

         String substring(int beginIndex, int endIndex)截取字串

         String toUpperCase() 转大写

         String toLowerCase() 转小写

         String trim(  ) 去除空格// 用来去除头部和尾部的空格。

     

    //1.查找字符串

            String filePath = "D:\20161126\day13\Demo1.java";

        //s.indexOf("java"); //第一次出现的索引位置

        //s.indexOf("java", 2);//从指定的位置开始查找

     

    StringBuffer: 符串缓存区 存在一个字符数组   默认会有一个大小 16 ,如果超了就容器大小就翻一倍。

     * 类似oc中的可变字符串。

     */

    // StringBuffer :存字符的容器

     

     容器的功能

                       增加

               append(); //在字符串的后面追加

               insert(); //插入一个字符串。

        删除

              //delete(int start, int end)  // 删除某一段字符串。

    //deleteCharAt(int index)     // 删除指定位置的字符串  

      修改

               replace(int start, int end, String str) 根据指定 的开始与结束索引值替代成指定的内容。

               reverse()   翻转字符串缓冲类的内容。  abc--->cba

     

                       setCharAt(int index, char ch)  把指定索引值的字符替换指定的字符。

                       substring(int start, int end)  根据指定的索引值截取子串。

               ensureCapacity(int minimumCapacity)  指定StringBuffer内部的字符数组长度的。

     

      查找

        indexOf(String str, int fromIndex) 查找指定的字符串第一次出现的索引值,并且指定开始查找的位置。

      lastIndexOf(String str)

     

              capacity() 查看当前字符数组的长度。

              length()

     

              charAt(int index)

              toString()   把字符串缓冲类的内容转成字符串返回。

     

    random()产生随机数  // 产生的是 大于等于 0.0 - 小于1.0之间的随机数

     */

    *

     * System 的使用 :

     

     *   System 是系统类 主要用来获取系统的数据 它不能被实例化

     *   //对象呗回收会调用到这个方法中  多线程中执行的  Java中最少几个线程 : 两个 : 主线程 ,垃圾回收线程

    @Override

    protected void finalize() throws Throwable {

    // TODO Auto-generated method stub

    super.finalize();

    System.out.println(this.name+"挂了。。");

     

    //3.终止当前运行的jvm

    //System.exit(0); //输入一个0或者非0的数都可以  里面 :runtime.exit(0);

     

    //4.gc(  ); 运行垃圾回收器

     */

    集合

     

    集合:用来存放对象的容器,对象类型是任意的,长度是可变的。

    集合比数组的优势:集合可以存任意类型的对象,长度是可变的。

    数组:只能存同一种类型的变量,长度是固定的。

     

     

    两种接口 1 List  接口 可以有重复的元素,有序

             2Set  接口  反之 无序

    关键功能            

    创建集合对象    Collection c = new ArrayList<>();

       add( ) 将指定对象存储到集合中

          addAll () 将指定集合中的元素 添加到该集合

         addLast () 最后面

         addFirst () 最前面

     

     remove()将指定对象从集合中删除

    removeAll () 将指定集合 从该集合中删除

     

    判断 isEmpty() 判断集合是否为空

    containsAll  判断集合中是否包含指定集合

    Contains        判断集合中是否包含指定对象

    获取:  size()    返回集合容器的大小

    转成数组 toArray()   集合转换数组

    A.retainAll(B )  求集合A和集合B中的交集

     

    List 只是个接口提供公有的方法中特有的方法:通过下标来操作元素,因为有序

     

       addint index, E element ) 将指定对象存储到集合中

          addAll () 将指定集合中的元素 添加到该集合

    获取对象

          get(int index) 获取集合中指定位置的元素 用来修改集合中指定位置的值

     

    .查找:

              indexOf(Object o)      查找指定对象在集合中第一次出现的位置。

     

              lastIndexOf(Object o)  返回查找集合中元素最后一次出现的位置

     

    //删除指定索引位置的对象

            list.remove(  );

     

    /*

     * 迭代器 :

     *    用来操作集合中的元素,增删 , 获取集合中的对象。

     *    集合中获取迭代器:通过集合中方法来获取 iterator()

     *    Iterator : 迭代器的超级接口  : 所有的迭代器接口都是继承Iterator

     *    

     *     迭代器中常用的方法:

     *       hasNext();  //判断当前指针指向的位置是否存在元素

     *       next();     // 获取当前指针指向元素的。 当这个方法被调用一次后指针就会下一次。

     

     *       remove(); // 删除最后一次出现对象  移除最后一次操作的元素

     

     

     

    /*

     * listItreaor : 继承  Iteraor

     

       listItreaor : 特有的方法:

       

            hasPrevious() ; // 判断当前是否指针指向的上一个元素

            previous() ;   // 获取上一个元素

            previousIndex() //获取上一个元素索引位置

     

     //////////////////////////      

           add(E e) ;

        不能同时使用

           set(E e) ;

     

     *

     

     //三种方式遍历集合:

     //f方式一 : 将集合变为数组

     //方式二: get()方法获取 : 只能在list集合中使用, 只有list集合才有索引值。

     //通过迭代器   ListIterator类     next()

     

     迭代器使用的注意事项: 当你用迭代器来操作集合中的元素时,不要再用集合来操作元素

     例如  通过索引值 插入对象 这时候不要用 迭代器如上特有方法来操作  会造成指针异   

     

    //

    ArrayList 底层是维护一个Object的数组,默认容量是10,如果用量不够增加1.5

    方法:trimToSize(  ) 调整用量和数据保持一致

          ensureCapcity () 自定用量

     

    结构:collection 接口 跟接口 Collection 超接口

     *          ------> List

     *              ---->ArrayList  : 是存在一个数组(Object[]), 添加,删元素很慢,查找很块 ,元素在内存中是有序的。

     *              ---->LinkedList : 添加元素比较快 , 删,查找比较慢 ,元素在内存中是无序的

     

     Set集合

     

    也是一个接口 继承Collection接口  特点 :无序的元素不能重复

     首先回调用对象的hashCode方法获取hashCode值,通过移位等运算获取一个位置

     

     情况1:如果位置上是没有元素,直接将元素存放在该位置。

     *    情况2: 如果位置上已经有了元素,用对象的equals方法和位置上已经存在的对象作比较,如果equals返回的是true那就代表是重复对象,

     *          就不存,如果返回的false将对象和原有的对象存在一起。

     

    1.将集合变为数组  2.通过迭代器来遍历

     

    //将集合变为字符串。

    //将集合变为字符串。

    s = Arrays.toString(set.toArray());

    首先集合转不了字符串 先将集合转为数组 然后通过数组一个方法转为字符串

     

    import java.util.HashSet; set集合的包

     

    import java.util.TreeSet; set底层使用二叉树来实现的包

     TreeSet使用注意点:

     *     1.TreeSet添加对象的时候,如果对象有这个自然排序的特性,就按照这个自然排序进行排序。

     *     2.TreeSet添加对象的时候,如果对象本身不具备自然排序的特性,运行的时候直接报错,如果需要存储对象,那么的对象的类必须要实现

     *       Comparable 接口  把元素的比较的规则定义在compareTo方法中。

     *       

     *     3..TreeSet添加对象的时候,如果对象本身不具备自然排序的特性,并且没有实现Comparable 接口,那么这个时候就需要创建

     *     一个TreeSet的时候传入一个比较器。

     

    使用注意:

    1.如果添加的元素存在自然排序的特性,那么存入的元素会通过自然排序进行排序

    2.如果添加的元素,不具备自然排序的特性,那么这个时候必须要实现Comparable接口

    将元素的比较规则定义到comparTo方法中

     comparTo的比较规则: 返回一个0,负数或正数 ,分别表示相等,小于和大于

    3.如果添加的元素,不具备自然排序的特性,又没有实现Comparable接口 ,这个时候需要写在创建TreeSet对象是传一个比较器。

     *          

     *           比较器的定义方式:

     *               自定义一个类实现:Comprator接口

     *               

     *                同实现Compratorcompar(Object o1 ,Objecto1)来指定元素比较的规则。

     *                规则:返回一个0,负数或正数 ,分别表示相等,小于和大于。

     *            

     *           TreeSet:底层是使用二叉树来存放数据的。

    小就翻一倍。

     * 类似oc中的可变字符串。

     */

    // StringBuffer :存字符的容器

     

     容器的功能

                       增加

               append(); //在字符串的后面追加

               insert(); //插入一个字符串。

        删除

              //delete(int start, int end)  // 删除某一段字符串。

    //deleteCharAt(int index)     // 删除指定位置的字符串  

      修改

               replace(int start, int end, String str) 根据指定 的开始与结束索引值替代成指定的内容。

               reverse()   翻转字符串缓冲类的内容。  abc--->cba

     

                       setCharAt(int index, char ch)  把指定索引值的字符替换指定的字符。

                       substring(int start, int end)  根据指定的索引值截取子串。

               ensureCapacity(int minimumCapacity)  指定StringBuffer内部的字符数组长度的。

     

      查找

        indexOf(String str, int fromIndex) 查找指定的字符串第一次出现的索引值,并且指定开始查找的位置。

      lastIndexOf(String str)

     

              capacity() 查看当前字符数组的长度。

              length()

     

              charAt(int index)

              toString()   把字符串缓冲类的内容转成字符串返回。

     

    random()产生随机数  // 产生的是 大于等于 0.0 - 小于1.0之间的随机数

     */

    *

     * System 的使用 :

     

     *   System 是系统类 主要用来获取系统的数据 它不能被实例化

     *   //对象呗回收会调用到这个方法中  多线程中执行的  Java中最少几个线程 : 两个 : 主线程 ,垃圾回收线程

    @Override

    protected void finalize() throws Throwable {

    // TODO Auto-generated method stub

    super.finalize();

    System.out.println(this.name+"挂了。。");

     

    //3.终止当前运行的jvm

    //System.exit(0); //输入一个0或者非0的数都可以  里面 :runtime.exit(0);

     

    //4.gc(  ); 运行垃圾回收器

     */

    集合

     

    集合:用来存放对象的容器,对象类型是任意的,长度是可变的。

    集合比数组的优势:集合可以存任意类型的对象,长度是可变的。

    数组:只能存同一种类型的变量,长度是固定的。

     

     

    两种接口 1 List  接口 可以有重复的元素,有序

             2Set  接口  反之 无序

    关键功能            

    创建集合对象    Collection c = new ArrayList<>();

       add( ) 将指定对象存储到集合中

          addAll () 将指定集合中的元素 添加到该集合

         addLast () 最后面

         addFirst () 最前面

     

     remove()将指定对象从集合中删除

    removeAll () 将指定集合 从该集合中删除

     

    判断 isEmpty() 判断集合是否为空

    containsAll  判断集合中是否包含指定集合

    Contains        判断集合中是否包含指定对象

    获取:  size()    返回集合容器的大小

    转成数组 toArray()   集合转换数组

    A.retainAll(B )  求集合A和集合B中的交集

     

    List 只是个接口提供公有的方法中特有的方法:通过下标来操作元素,因为有序

     

       addint index, E element ) 将指定对象存储到集合中

          addAll () 将指定集合中的元素 添加到该集合

    获取对象

          get(int index) 获取集合中指定位置的元素 用来修改集合中指定位置的值

     

    .查找:

              indexOf(Object o)      查找指定对象在集合中第一次出现的位置。

     

              lastIndexOf(Object o)  返回查找集合中元素最后一次出现的位置

     

    //删除指定索引位置的对象

            list.remove(  );

     

    /*

     * 迭代器 :

     *    用来操作集合中的元素,增删 , 获取集合中的对象。

     *    集合中获取迭代器:通过集合中方法来获取 iterator()

     *    Iterator : 迭代器的超级接口  : 所有的迭代器接口都是继承Iterator

     *    

     *     迭代器中常用的方法:

     *       hasNext();  //判断当前指针指向的位置是否存在元素

     *       next();     // 获取当前指针指向元素的。 当这个方法被调用一次后指针就会下一次。

     

     *       remove(); // 删除最后一次出现对象  移除最后一次操作的元素

     

     

     

    /*

     * listItreaor : 继承  Iteraor

     

       listItreaor : 特有的方法:

       

            hasPrevious() ; // 判断当前是否指针指向的上一个元素

            previous() ;   // 获取上一个元素

            previousIndex() //获取上一个元素索引位置

     

     //////////////////////////      

           add(E e) ;

        不能同时使用

           set(E e) ;

     

     *

     

     //三种方式遍历集合:

     //f方式一 : 将集合变为数组

     //方式二: get()方法获取 : 只能在list集合中使用, 只有list集合才有索引值。

     //通过迭代器   ListIterator类     next()

     

     迭代器使用的注意事项: 当你用迭代器来操作集合中的元素时,不要再用集合来操作元素

     例如  通过索引值 插入对象 这时候不要用 迭代器如上特有方法来操作  会造成指针异   

     

    //

    ArrayList 底层是维护一个Object的数组,默认容量是10,如果用量不够增加1.5

    方法:trimToSize(  ) 调整用量和数据保持一致

          ensureCapcity () 自定用量

     

    结构:collection 接口 跟接口 Collection 超接口

     *          ------> List

     *              ---->ArrayList  : 是存在一个数组(Object[]), 添加,删元素很慢,查找很块 ,元素在内存中是有序的。

     *              ---->LinkedList : 添加元素比较快 , 删,查找比较慢 ,元素在内存中是无序的

     

     Set集合

     

    也是一个接口 继承Collection接口  特点 :无序的元素不能重复

     首先回调用对象的hashCode方法获取hashCode值,通过移位等运算获取一个位置

     

     情况1:如果位置上是没有元素,直接将元素存放在该位置。

     *    情况2: 如果位置上已经有了元素,用对象的equals方法和位置上已经存在的对象作比较,如果equals返回的是true那就代表是重复对象,

     *          就不存,如果返回的false将对象和原有的对象存在一起。

     

    1.将集合变为数组  2.通过迭代器来遍历

     

    //将集合变为字符串。

    //将集合变为字符串。

    s = Arrays.toString(set.toArray());

    首先集合转不了字符串 先将集合转为数组 然后通过数组一个方法转为字符串

     

    import java.util.HashSet; set集合的包

     

    import java.util.TreeSet; set底层使用二叉树来实现的包

     TreeSet使用注意点:

     *     1.TreeSet添加对象的时候,如果对象有这个自然排序的特性,就按照这个自然排序进行排序。

     *     2.TreeSet添加对象的时候,如果对象本身不具备自然排序的特性,运行的时候直接报错,如果需要存储对象,那么的对象的类必须要实现

     *       Comparable 接口  把元素的比较的规则定义在compareTo方法中。

     *       

     *     3..TreeSet添加对象的时候,如果对象本身不具备自然排序的特性,并且没有实现Comparable 接口,那么这个时候就需要创建

     *     一个TreeSet的时候传入一个比较器。

     

    使用注意:

    1.如果添加的元素存在自然排序的特性,那么存入的元素会通过自然排序进行排序

    2.如果添加的元素,不具备自然排序的特性,那么这个时候必须要实现Comparable接口

    将元素的比较规则定义到comparTo方法中

     comparTo的比较规则: 返回一个0,负数或正数 ,分别表示相等,小于和大于

    3.如果添加的元素,不具备自然排序的特性,又没有实现Comparable接口 ,这个时候需要写在创建TreeSet对象是传一个比较器。

     *          

     *           比较器的定义方式:

     *               自定义一个类实现:Comprator接口

     *               

     *                同实现Compratorcompar(Object o1 ,Objecto1)来指定元素比较的规则。

     *                规则:返回一个0,负数或正数 ,分别表示相等,小于和大于。

     *            

     *           TreeSet:底层是使用二叉树来存放数据的。

  • 相关阅读:
    Java笔记(二十一) 动态代理
    Java笔记(二十) 注解
    Java笔记(十九) 反射
    Java笔记(十八)同步和协作工具类
    Java笔记(十七) 异步任务执行服务
    Spring使用笔记(四) 面向切面的Spring
    Spring使用笔记(三) 高级装配
    Java笔记(十六)并发容器
    Java笔记(十五) 并发包
    Java笔记(十四) 并发基础知识
  • 原文地址:https://www.cnblogs.com/ZAIHUANG/p/6134705.html
Copyright © 2020-2023  润新知