2021.12.1学习记录

一、Cloneable接口

将对象复制一份,称为对象的克隆。为了实现一些短暂显示的,而又不得不实现的对象设计的一个类,比如飞机大战中的子弹

如果某个类要实现Cloneable。

1)必须实现其接口

2)重写Object中的clone方法

然后直接调用方法

二、System与Runtime类

System类中,常用有输入(System.in),输出(System.out)和错误输出(System.erro),会显红

System.arrayCopy是常用的拷贝方法

Runtime类的使用,可以与运行环境系统相匹配

三、数字处理工具类

BigInteger类:可以进行对超过INT范围的数的计算

BigDecimal类:由于double和float在计算时容易丢失精度,因此引入此类

四、MD5工具类

信息摘要算法,目的是为了实现数据的加密与解密

使用方法:

MessiageDisget md5 = new MessageDisget("MD5")

//JDK1.8新增

String newstr = Base64.getEncode().encodeToString(md5.disget(str.getBytes("utf-8")))

注:64是指:a-z,A-Z,0-9,/,*;在每次加密以后,会在最后加上==

//1.8以前

Base64Encode base64 = new Base64Encode

base64.encode(md5.disget(str.getBytes("utf-8")))

五、二叉树

形如此类的树,即为二叉树,每个节点最多有两个节点,每个节点左边的值,必须小于该节点,右边的必须大于。最顶端的叫根节点,最下面的叫叶子节点

将数据排为二叉树并按照中序遍历(左-中-右),先序为(中-左-右)后序为(左-右-后)

实现代码:

public class BinalTree {
    private Node root;

    public void add(int data) { 
        if(root == null) {
            root= new Node(data);
        }else {
            root.addNode(data);
        }
    }
    public void print() {
        if(root == null) {
            System.out.println("空树");
        }else {
            root.printNode();
        }
    }
    
        
    
    private class Node{
        private int data;
        private Node left;
        private Node right;
        public Node(int data) {
            this.data = data;
        }
        public void addNode(int data) {
            if(this.data > data) {
                if(this.left == null) {
                    this.left = new Node(data);
                }else {
                    this.left.addNode(data);
                }
            }else{
                if(this.right == null) {
                    this.right = new Node(data);
                }else {
                    this.right.addNode(data);
                }
            }
                
            
        }
        public void printNode() {
            if(this.left != null) {
                this.left.printNode();
            }
            System.out.println(this.data + "->");
            if(this.right != null) {
                this.right.printNode();
            }
        }
    }

}

public class BinalTreeDemo {

    public static void main(String[] args) {
        BinalTree bt = new BinalTree();
        //8,12,4,5,9,13,6,1,17
        bt.add(8);
        bt.add(12);
        bt.add(4);
        bt.add(5);
        bt.add(9);
        bt.add(13);
        bt.add(6);
        bt.add(1);
        bt.add(17);
        
        bt.print();

    }

}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值