美文网首页
2019-08-17

2019-08-17

作者: kkkk小天使 | 来源:发表于2019-08-18 00:34 被阅读0次

    1、Collection  -  List - ArrayList

                                    - LinkedArrayList

                           - Set - HashSet

                                    - LinkedHashSet

                                    - TreeSet 

    class GenericTest<T>{

        int age;

        T a1;

        T a2;

        public void test(T a1, T a2){

            this.a1 = a1;

            this.a2 = a2;

            System.out.println(a1.equals(a2));

        }

    }

    2、集合中元素不重复,重复放不进去

         内部使用HashMap来实现,键值对,键key不能重复

    /**

    * 泛型 -

    * 泛型类

    * 泛型方法

    * 泛型数组

    */

    public class MyClass {

    public static void main(String[] args){

    /*

    GenericTest g1 = new GenericTest<>();

    g1.test("jack","jacker");

    */

                  //1.集合里面对象不能重复 如果重复 加不进去

                  //内部使用HashMap来实现 键值对 键key不能重复

                  //"jack":obj

                  //2.集合是无序的 添加的顺序和存储的顺序无关

                 //  使用了默认排序

                 // 哈希算法

                 // 如何实现HashMap里面key不相同

                 // 计算这个key对应的对象的hash值

                 // 整数:在对象的地址的基础上按照一定的算法计算出来的一个整数

                 //      如果两个对象相同 那么计算出来的hash值就相同

                //HashSet HashMap

    HashSet names = new HashSet<>();

    names.add("jack");

    names.add("merry");

    names.add("abc");

    names.removeIf(ele -> {

    return ele.compareTo("c") > 0;

    });

                   //可以排序的集合

    TreeSet score = new TreeSet<>();

    Person p1 = new Person("jack",20);

    Person p2 = new Person("jack",30);

    Person p3 = new Person("rose",20);

    score.add(p1);

    score.add(p2);

    score.add(p3);

                   //equals 比较的是对象内部的内容

                   //使用的两个对象必须实现Comparable接口的compareTo方法

                  //在compareTo里面实现具体该如何比较

    System.out.println(p1==p2);

    }

    }

    class Person implements Comparable{

    String name;

    int age;

    public Person(String name, int age){

    this.name = name;

    this.age = age;

    }

    @Override

    public String toString() {

    return "Person{" +

    "name='" + name + '\'' +

    ", age=" + age +

    '}';

    }

    @Override

    public int compareTo(Object o) {

                //1. 判断o对象是不是peron的一个对象

    return 0;

    }

    }

    class GenericTest{

    int age;

    T a1;

    T a2;

    public void test(T a1, T a2){

    this.a1 = a1;

    this.a2 = a2;

    System.out.println(a1.equals(a2));

    }

    }

    3、集合是无序的,添加的顺序和存储的顺序无关,使用了默认排序

         哈希算法

         如何实现HashMap里面key不相同

         计算这个key对应的对象的hash值

         整数:在对象的地址的基础上按照一定的算法计算出来的一个整数,如果两个对象相同,技术出来的hash值就相同

         HashSet     HashMap

    4、equals  比较的是对象内部的内容

         使用的两个对象必须实现Comparable接口的compareTo方法

         在compareTo里面实现具体如何比较

    5、集合存取数据的特点:

         键key--值value

         key不能重复,可以是任意对象类型,通常用字符串String

    @Override

    public int compareTo(Object o) {

             //1. 判断o对象是不是peron的一个对象

    if (o instanceof Person){

    Person o1 = (Person)o;

            //自己规定比较的策略

    if (this.age != o1.age){

    return this.age - o1.age;

    }else{

              //年龄相同的情况下 再比姓名的字母

    return this.name.compareTo(o1.name);

    }

    }else{

    return -1;

    }

    }

    6、添加对象:键值对

         put:添加/更改

         通过keySet可以得到所有键的集合,通过values得到所有的值

    7、键值对的遍历

    (1)通过遍历key得到每一个key对应的值

    (2)通过EntrySet(一个内部类)得到Entry对应的key,获取Entry对应的值

    8、StringBuilder

         ArrayList

         HashMap

    9、异常处理  错误:error

    处理运行过程中出现的不可控的错误,使程序更健壮

    Exception

    try{

                 //执行的代码

                 //可能出现异常

                 //一旦出现异常,系统自动创建一个异常对象,并抛出

    }catch(NullPointerException  e){

                 //如果需要自己处理异常就catch

    }catch(IOException  e){

                   //如果有多个异常,可以使用多个catch来捕获

                   //如果有多个异常,catch顺序从小到大

    }catch(Exception  e){

    }

                   //如果异常出现,后面的代码将不会执行

                   //try代码块   不要抓太多

                   //使用throws抛出异常,给外部处理

    10、圆括号里面只能添加可以关闭的对象

    11、出现多个异常用逗号隔开

    12、自定义Exception异常:

    (1)提供一个无参构造方法

    (2)提供一个有参构造方法,参数是一个字符串

    感悟

    打好基础才能有下文,一口吃不成胖子(比如我)

    相关文章

      网友评论

          本文标题:2019-08-17

          本文链接:https://www.haomeiwen.com/subject/zkkhsctx.html