• 2015-04-07一些知识点


    今天看到一些知识点,与大家分享:

    1、Collection是一个接口,它是List、Set、Queue等接口的父接口。在这个接口中,定义了集合类中通用的方法,例如增加元素、删除元素等。该接口继承了Iterable接口,因此可以使用foreach遍历集合中的元素。

    Collections是一个类,它是专门为Collection接口类型对象定义的工具类。这个类提供了很多静态方法,实现了排序、查找等算法。
    2、Comparator接口的实现类用于实现排序功能
    具体见:http://www.cnblogs.com/linjiqin/archive/2011/08/31/2160360.html
    3、ArrayList和LinkedList的区别:
    对于ArrayList,在底层上使用数组作为容器,类似于数据结构中的顺序表,它可以快速的存取容器中任意位置的元素,缺点是插入和删除操作需要移动大量元素。
    对于LinkedList,在底层上使用双向链表作为容器,类西域数据结构中的链表,它可以快速地插入和删除元素,缺点是获取元素比较耗时。
    4、Deque叫做双端队列,Double Ended Queue 的缩写,它支持在两端插入和删除元素。该接口的实现类包括ArrayDeque和LinkedList类,他们都支持在必要时自动扩展容量。
    5、Hashtable的“t”不能写成“T”
    6、Map接口的实现类:HashMap(基于哈希表的实现),LinkedHashMap(基于哈希表和链表的Map接口实现),TreeMap(基于红黑树的Map接口实现)
    7、不使用新的内存交换两个数:
    int a = 10;
    int b = 6;
    a = a+b;
    b = a-b;
    a = a-b;
    8、System.arraycopy方法的使用
    Arrays.toString(arr1)方法可以直接打印出来整个数组

    package com.lk.C;
    
    import java.util.Arrays;
    
    public class Test2 {
        public static void main(String[] args) {
            int [] arr1 = {1,2,3,4,5,6,7,8,9};
            int [] arr2 = new int[10];
            System.arraycopy(arr1, 2, arr2, 1, 3);
            //参数的含义:从哪个数组复制;从被复制数组的第几个数开始复制;目标数组;目标数组的第几个数开始接收;接收几个
            System.out.println(Arrays.toString(arr1));
            System.out.println(Arrays.toString(arr2));
        }
    }
    //[1, 2, 3, 4, 5, 6, 7, 8, 9]
    //[0, 3, 4, 5, 0, 0, 0, 0, 0, 0]

    9、Hanoi(汉诺塔)问题的时间复杂度是T(n)=2T(n-1)+1 即T(n)=2^n-1 时间复杂度是O(2^n)
    10、树的度指的是某节点所拥有的子树的个数。
    11、霍夫曼树是带权路径最小的二叉树,其算法的核心思想是每次从节点的权值中选择两个最小的构造树。
    例题在P241页
    12、静态查找和动态查找:
    静态查找是指查找过程中元素不发生变化,动态查找是指查找过程中元素发生增加、删除等变化。
    适合静态查找的算法包括:顺序查找、折半查找、散列查找等。
    适合动态查找的算法包括二叉排序树查找、散列查找等。
    13、对于散列查找,可以直接根据函数来计算元素的位置,因此时间复杂度与n无关。
    14、有向完全图需要任意两个顶点之间都存在两条方向相反的连线。
    即n个顶点的有向完全图中包含n*(n-1)条边。
    15、水仙花数就是一个数等于组成该数各个位的立方和,例如370=3^3+7^3+0^3
    16、一个数怎么获得个十百千万位的数?

    package com.lk.C;
    
    public class Test5 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int num = 12345;
            System.out.println((num/10000)%10);//获得万位
            System.out.println((num/1000)%10);//获得千位
            System.out.println((num/100)%10);//获得百位
            System.out.println((num/10)%10);//获得十位
            System.out.println((num/1)%10);//获得个位
        }
    
    }
  • 相关阅读:
    在列表中添加序号列
    在C#中使用正则表达式
    Git
    Linux 配置Java环境
    讯飞语义理解 JAVA SDK
    分屏显示
    Gdiplus
    重启进程
    MFC 常用功能属性
    MFC 打印
  • 原文地址:https://www.cnblogs.com/luankun0214/p/4399634.html
Copyright © 2020-2023  润新知