九月第三周总结

Posted zhaijiayu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了九月第三周总结相关的知识,希望对你有一定的参考价值。

1. StringBuilder使用reverse()方法

使用reverse()方法之后,StringBuidler的对象发生反转,然后返回这个反转后的值,而不是仅仅返回反转后的值!下面通过一个例子验证一下:

public class Main{
    public static void main(String[] args) {
        StringBuilder sb =  new StringBuilder("12345");
        System.out.println("Original: " + sb.toString());
        System.out.println("Reverse for one times: " + sb.reverse().toString());
        System.out.println("Reverse for two times: " + sb.reverse().toString());
    }
}

输出:

Original: 12345
Reverse for one times: 54321
Reverse for two times: 12345

2. Java中Queue不同方法的区别

根据出错情况分为两类,一类是抛出异常,一类是返回false或者null

技术图片

 

 (图片来自廖雪峰的官方网站)

3. Math.ceil是java的向上取整函数

public class Main {
    public static void main(String[] args) {
        double num1 = 1.2;
        double num2 = 1.0;
        System.out.println(Math.ceil(num1));
        System.out.println(Math.ceil(num2));
    }
}

输出:

2.0
1.0

4. List删除元素之后,元素的索引自动向前移动,这是和数组不同的地方。

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> num = new ArrayList<>();
        num.add(1);
        num.add(2);
        num.add(3);
        System.out.println(num.get(0));
        num.remove(0);
        System.out.println(num.get(0));
        num.remove(0);
        System.out.println(num.get(0));
    }
}

输出:

1
2
3

5. String split是java的拆分函数,输入拆分的字符串,返回拆分后的数组。

public class Main {
    public static void main(String[] args) {
        String str = "Hello-World!-haha-aiyou-bucuoo-!";
        String c = "-";
        System.out.println("Result:");
        String[] res = str.split(c);
        for(String s : res){
            System.out.print(s + " ");
        }
    }
}

输出:

Result:
Hello World! haha aiyou bucuoo !

6. 需要命令行执行的程序,可以考虑将其放到Linux上去执行。通过Xshell和Xftp(非商用版是免费的,不需要破解版),就可以快速轻量地实现环境的搭建。

 

下面是《算法》第四版Linux的环境搭建过程

(1)安装jdk

~> sudo add-apt-repository ppa:openjdk-r/ppa
~> sudo apt-get update
~> sudo apt-get install openjdk-11-jdk

(2)配置类库脚本

~> cd /usr/local
/usr/local/> sudo curl -O "https://lift.cs.princeton.edu/java/linux/lift-cli.zip"
/usr/local/> sudo unzip lift-cli.zip
/usr/local/> sudo rm lift-cli.zip

测试一下命令 javac-algs4 和 java-algs4 (代替原有的 javac 和 java ),如果成功,那么环境就搭建完成了。

 7. 归并排序的示例

//Main.java
public class Main {
    public static void main(String[] args) {
        Comparable[] a = {‘E‘,‘E‘,‘G‘,‘M‘,‘R‘,‘A‘,‘C‘,‘E‘,‘R‘,‘T‘};
        Merge.sort(a);
        for(Comparable c : a){
            System.out.print(c + " ");
        }
    }
}
//Merge.java
public class Merge {
    private static Comparable[] aux;
    public static void sort(Comparable[] a){
        aux = new Comparable[a.length];
        sort(a, 0, a.length - 1);
    }
    private static void sort(Comparable[] a, int lo, int hi){
        if(hi <= lo){
            return;
        }
        int mid = lo + (hi - lo) / 2;
        sort(a, lo, mid);
        sort(a, mid + 1, hi);
        merge(a, lo, mid, hi);
    }

    public static void merge(Comparable[] a, int lo, int mid, int hi){
        int i = lo, j = mid + 1;
        for(int k = lo; k <= hi; k++){
            aux[k] = a[k];
        }

        for(int k = lo; k <= hi; k++){
            if(i > mid){
                a[k] = aux[j++];
            }
            else if(j > hi){
                a[k] = aux[i++];
            }
            else if(less(aux[j], aux[i]) < 0){
                a[k] = aux[j++];
            }
            else{
                a[k] = aux[i++];
            }
        }
    }
    public static int less(Comparable i, Comparable j){
        return i.compareTo(j);
    }
}

输出

A C E E E G M R R T

 

以上是关于九月第三周总结的主要内容,如果未能解决你的问题,请参考以下文章

暑假第三周总结

《数据结构与面向对象程序设计》第三周学习总结

20172306第三周学习总结

linux及安全第三周总结——20135227黄晓妍

2017秋-软件工程第三次作业-第三周例行总结

20165225《Java程序设计》第三周学习总结