zoukankan      html  css  js  c++  java
  • Java基础---数组总结

    图片比较大,可能看不太清楚,可以单击右键选择查看图片,看大图

    这里截取截取几个比较重要的展示吧,具体的大家看图了

    arraylist---类:数组实现,查找快,线程不安全,效率高,最常用的集合之一

    去重:
    //注意,自定义对象必须重写 equals 方法才能实现去重
            //因为 contions ();底层是依靠 equals 实现的
            ArrayList<Student> a = new ArrayList<Student>();
            a.add(new Student("张三",23));
            a.add(new Student("张三",23));
            a.add(new Student("李四",24));
            //获取迭代器对象
            Iterator<Student> i = a.iterator();
            //创建新集合
            ArrayList<Student> a1 = new ArrayList<Student>();
            while (i.hasNext()) {
                Student s = i.next();//.next();有个指针不能连续调用
                if (!a1.contains(s)) {
                    a1.add(s);
                }
            }

    TreeSet---类:在保证数据唯一性的情况下对数据进行排序,排序的功能由二叉树算法实现

    两种实现方法:

    方法一:自定义对象实现compareable接口,并且重写其中的compareTo方法

    public class Student implements Comparable<Student>

    @Override
        public int compareTo(Student o) {
            int num = this.age - o.age;
            return num == 0 ? this.name.compareTo(o.name) : num;
        }
    自定义对象实现了该接口之后,直接传入,TreeSet 集合就可以实现排序和去重
    当我们要保留重复元素的时候可以这样
    return num == 0 ? 1 : num;
    注意:
    this.age - o.age; 是从小到大
    o.age - this.age 是从到小
    这跟二叉树的算法有关,存法:返回值为负数存左边,为正存右边,为0不存
                                    取法:默认先取左边

    方法二:在创建TreeSet对象的时候通过构造方法传入比较器(实现了comparator的对象实例,一般通过匿名内部类实现)

            TreeSet<Student> t = new TreeSet<Student>(new Comparator<Student>() {

                @Override
                public int compare(Student o1, Student o2) {
                    int num = o1.getAge() - o2.getAge();
                    return num == 0 ? o1.getName().compareTo(o2.getName()) : num;
                }
            });
    我们一般是通过构造方法传入 comparator 的匿名子类对象
    o1.getAge() - o2.getAge(); 从小到大
    o2.getAge() - o1.GetAge(); 从大到小

    --------------------------------------------------------------------------------------------------------------------------------------------------------------

    好了,我就写这么多了,具体的大家看图了啊

  • 相关阅读:
    rest-assured : Restful API 测试利器
    Bootstrap 模态框 + iframe > 打开子页面 > 数据传输/关闭模态框
    angular js 自定义js错误处理(Angularjs js error handler)
    Spring Boot + Bootstrap 出现"Failed to decode downloaded font"和"OTS parsing error: Failed to convert WOFF 2.0 font to SFNT"
    Use Apache HttpClient to Post json data
    小程序-走迷宫
    Java getResourceAsStream() 方法会缓存文件的问题
    【转载】java项目中经常碰到的内存溢出问题: java.lang.OutOfMemoryError: PermGen space, 堆内存和非堆内存,写的很好,理解很方便
    DIV布局-高度不同DIV,自动换行并对齐
    Excel表格常用的函数,留着备用
  • 原文地址:https://www.cnblogs.com/xusong/p/5787167.html
Copyright © 2011-2022 走看看