-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathatom.xml
More file actions
127 lines (73 loc) · 71.9 KB
/
atom.xml
File metadata and controls
127 lines (73 loc) · 71.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>YeWeiZheng's blog</title>
<icon>https://www.gravatar.com/avatar/93b9f4626893842d215bd33270b95ea9</icon>
<subtitle>胆小认生,不易相处</subtitle>
<link href="/atom.xml" rel="self"/>
<link href="http://yoursite.com/"/>
<updated>2017-11-30T15:53:18.000Z</updated>
<id>http://yoursite.com/</id>
<author>
<name>YeWeiZheng</name>
<email>550560813@qq.com</email>
</author>
<generator uri="http://hexo.io/">Hexo</generator>
<entry>
<title>正方教务系统一键评教方法</title>
<link href="http://yoursite.com/2017/11/30/%E6%AD%A3%E6%96%B9%E6%95%99%E5%8A%A1%E7%B3%BB%E7%BB%9F%E4%B8%80%E9%94%AE%E8%AF%84%E6%95%99%E6%96%B9%E6%B3%95/"/>
<id>http://yoursite.com/2017/11/30/正方教务系统一键评教方法/</id>
<published>2017-11-30T15:23:23.000Z</published>
<updated>2017-11-30T15:53:18.000Z</updated>
<content type="html"><![CDATA[<p>1.先进入评教页面<br><img src="http://p084vne1c.bkt.clouddn.com/17-11-30/50663284.jpg" alt=""><br>2.使用谷歌内核浏览器,比如QQ浏览器,能进入如下界面就行拉。按键盘上的F12键进入开发者模式,点击Console选项。把第3步的代码粘贴到这里,按回车就自动跳到下一个老师,循环粘贴回车即可。<br><img src="http://p084vne1c.bkt.clouddn.com/17-11-30/79240436.jpg" alt=""><br>3.代码如下:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line">var iframe = document.getElementById('iframeautoheight');</span><br><span class="line"></span><br><span class="line">var innerDoc = iframe.contentDocument || iframe.contentWindow.document;</span><br><span class="line"></span><br><span class="line">var selects = innerDoc.getElementsByTagName('select');</span><br><span class="line"></span><br><span class="line">var scorelist = [];</span><br><span class="line"></span><br><span class="line">// 找到下拉菜单列表</span><br><span class="line"></span><br><span class="line">for (var i = 0; i < selects.length; i++) {</span><br><span class="line"></span><br><span class="line">if (selects[i].id.indexOf("DataGrid1__") > -1) {</span><br><span class="line"></span><br><span class="line">scorelist.push(selects[i]);</span><br><span class="line"></span><br><span class="line">}</span><br><span class="line"></span><br><span class="line">}</span><br><span class="line"></span><br><span class="line">// 选取下拉菜单项</span><br><span class="line"></span><br><span class="line">for (var i = 0; i < scorelist.length; i++) {</span><br><span class="line"></span><br><span class="line">var ops = scorelist[i].options;</span><br><span class="line"></span><br><span class="line">var rid = Math.floor(Math.random()*scorelist.length);</span><br><span class="line"></span><br><span class="line">for (var j = 0; j < ops.length; j++) {</span><br><span class="line"></span><br><span class="line">var tempValue = ops[j].value;</span><br><span class="line"></span><br><span class="line">if (i == rid) {</span><br><span class="line"></span><br><span class="line">if (tempValue == '优') {</span><br><span class="line"></span><br><span class="line">ops[j].selected = true;</span><br><span class="line"></span><br><span class="line">}</span><br><span class="line"></span><br><span class="line">} else {</span><br><span class="line"></span><br><span class="line">if (tempValue == '优') {</span><br><span class="line"></span><br><span class="line">ops[j].selected = true;</span><br><span class="line"></span><br><span class="line">}</span><br><span class="line"></span><br><span class="line">}</span><br><span class="line"></span><br><span class="line">}</span><br><span class="line"></span><br><span class="line">}</span><br><span class="line"></span><br><span class="line">var btn_save = innerDoc.getElementById('Button1');</span><br><span class="line"></span><br><span class="line">btn_save.click();</span><br></pre></td></tr></table></figure></p>]]></content>
<summary type="html">
<p>1.先进入评教页面<br><img src="http://p084vne1c.bkt.clouddn.com/17-11-30/50663284.jpg" alt=""><br>2.使用谷歌内核浏览器,比如QQ浏览器,能进入如下界面就行拉。按键盘上的F12键进入开发者模式
</summary>
</entry>
<entry>
<title>二分搜索树的遍历(深度优先遍历)</title>
<link href="http://yoursite.com/2017/11/30/%E4%BA%8C%E5%88%86%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E9%81%8D%E5%8E%86%EF%BC%88%E6%B7%B1%E5%BA%A6%E4%BC%98%E5%85%88%E9%81%8D%E5%8E%86%EF%BC%89/"/>
<id>http://yoursite.com/2017/11/30/二分搜索树的遍历(深度优先遍历)/</id>
<published>2017-11-30T09:23:23.000Z</published>
<updated>2017-11-30T15:43:07.000Z</updated>
<content type="html"><![CDATA[<p>前序:先访问当前结点,再依次地柜访问左右子树.<br>中序:先递归访问左子树,再访问自身,再递归访问右子树.<br>后续:先递归访问左右子树,再访问自身结点.<br>以下三个点内涵:<br>第一个点:先<br>第二个点:中<br>第三个点:后<br><img src="http://p084vne1c.bkt.clouddn.com/17-11-30/83219958.jpg" alt=""><br><img src="http://p084vne1c.bkt.clouddn.com/17-11-30/2984998.jpg" alt=""><br><img src="http://p084vne1c.bkt.clouddn.com/17-11-30/38915320.jpg" alt=""><br><img src="http://p084vne1c.bkt.clouddn.com/17-11-30/4615490.jpg" alt=""> </p><p>BST.java<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br></pre></td><td class="code"><pre><span class="line">package bobo.algo;</span><br><span class="line"></span><br><span class="line">// 二分搜索树</span><br><span class="line">// 由于Key需要能够进行比较,所以需要extends Comparable<Key></span><br><span class="line">public class BST<Key extends Comparable<Key>, Value> {</span><br><span class="line"></span><br><span class="line"> // 树中的节点为私有的类, 外界不需要了解二分搜索树节点的具体实现</span><br><span class="line"> private class Node {</span><br><span class="line"> private Key key;</span><br><span class="line"> private Value value;</span><br><span class="line"> private Node left, right;</span><br><span class="line"></span><br><span class="line"> public Node(Key key, Value value) {</span><br><span class="line"> this.key = key;</span><br><span class="line"> this.value = value;</span><br><span class="line"> left = right = null;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> private Node root; // 根节点</span><br><span class="line"> private int count; // 树种的节点个数</span><br><span class="line"></span><br><span class="line"> // 构造函数, 默认构造一棵空二分搜索树</span><br><span class="line"> public BST() {</span><br><span class="line"> root = null;</span><br><span class="line"> count = 0;</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> // 返回二分搜索树的节点个数</span><br><span class="line"> public int size() {</span><br><span class="line"> return count;</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> // 返回二分搜索树是否为空</span><br><span class="line"> public boolean isEmpty() {</span><br><span class="line"> return count == 0;</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> // 向二分搜索树中插入一个新的(key, value)数据对</span><br><span class="line"> public void insert(Key key, Value value){</span><br><span class="line"> root = insert(root, key, value);</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> // 查看二分搜索树中是否存在键key</span><br><span class="line"> public boolean contain(Key key){</span><br><span class="line"> return contain(root, key);</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> // 在二分搜索树中搜索键key所对应的值。如果这个值不存在, 则返回null</span><br><span class="line"> public Value search(Key key){</span><br><span class="line"> return search( root , key );</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> // 二分搜索树的前序遍历</span><br><span class="line"> public void preOrder(){</span><br><span class="line"> preOrder(root);</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> // 二分搜索树的中序遍历</span><br><span class="line"> public void inOrder(){</span><br><span class="line"> inOrder(root);</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> // 二分搜索树的后序遍历</span><br><span class="line"> public void postOrder(){</span><br><span class="line"> postOrder(root);</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> //********************</span><br><span class="line"> //* 二分搜索树的辅助函数</span><br><span class="line"> //********************</span><br><span class="line"></span><br><span class="line"> // 向以node为根的二分搜索树中, 插入节点(key, value), 使用递归算法</span><br><span class="line"> // 返回插入新节点后的二分搜索树的根</span><br><span class="line"> private Node insert(Node node, Key key, Value value){</span><br><span class="line"></span><br><span class="line"> if( node == null ){</span><br><span class="line"> count ++;</span><br><span class="line"> return new Node(key, value);</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> if( key.compareTo(node.key) == 0 )</span><br><span class="line"> node.value = value;</span><br><span class="line"> else if( key.compareTo(node.key) < 0 )</span><br><span class="line"> node.left = insert( node.left , key, value);</span><br><span class="line"> else // key > node->key</span><br><span class="line"> node.right = insert( node.right, key, value);</span><br><span class="line"></span><br><span class="line"> return node;</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> // 查看以node为根的二分搜索树中是否包含键值为key的节点, 使用递归算法</span><br><span class="line"> private boolean contain(Node node, Key key){</span><br><span class="line"></span><br><span class="line"> if( node == null )</span><br><span class="line"> return false;</span><br><span class="line"></span><br><span class="line"> if( key.compareTo(node.key) == 0 )</span><br><span class="line"> return true;</span><br><span class="line"> else if( key.compareTo(node.key) < 0 )</span><br><span class="line"> return contain( node.left , key );</span><br><span class="line"> else // key > node->key</span><br><span class="line"> return contain( node.right , key );</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> // 在以node为根的二分搜索树中查找key所对应的value, 递归算法</span><br><span class="line"> // 若value不存在, 则返回NULL</span><br><span class="line"> private Value search(Node node, Key key){</span><br><span class="line"></span><br><span class="line"> if( node == null )</span><br><span class="line"> return null;</span><br><span class="line"></span><br><span class="line"> if( key.compareTo(node.key) == 0 )</span><br><span class="line"> return node.value;</span><br><span class="line"> else if( key.compareTo(node.key) < 0 )</span><br><span class="line"> return search( node.left , key );</span><br><span class="line"> else // key > node->key</span><br><span class="line"> return search( node.right, key );</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> // 对以node为根的二叉搜索树进行前序遍历, 递归算法</span><br><span class="line"> private void preOrder(Node node){</span><br><span class="line"></span><br><span class="line"> if( node != null ){</span><br><span class="line"> System.out.println(node.key);</span><br><span class="line"> preOrder(node.left);</span><br><span class="line"> preOrder(node.right);</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> // 对以node为根的二叉搜索树进行中序遍历, 递归算法</span><br><span class="line"> private void inOrder(Node node){</span><br><span class="line"></span><br><span class="line"> if( node != null ){</span><br><span class="line"> inOrder(node.left);</span><br><span class="line"> System.out.println(node.key);</span><br><span class="line"> inOrder(node.right);</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> // 对以node为根的二叉搜索树进行后序遍历, 递归算法</span><br><span class="line"> private void postOrder(Node node){</span><br><span class="line"></span><br><span class="line"> if( node != null ){</span><br><span class="line"> postOrder(node.left);</span><br><span class="line"> postOrder(node.right);</span><br><span class="line"> System.out.println(node.key);</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> // 测试二分搜索树</span><br><span class="line"> public static void main(String[] args) {</span><br><span class="line"></span><br><span class="line"> int N = 1000000;</span><br><span class="line"></span><br><span class="line"> // 创建一个数组,包含[0...N)的所有元素</span><br><span class="line"> Integer[] arr = new Integer[N];</span><br><span class="line"> for(int i = 0 ; i < N ; i ++)</span><br><span class="line"> arr[i] = new Integer(i);</span><br><span class="line"></span><br><span class="line"> // 打乱数组顺序</span><br><span class="line"> for(int i = 0 ; i < N ; i ++){</span><br><span class="line"> int pos = (int) (Math.random() * (i+1));</span><br><span class="line"> Integer t = arr[pos];</span><br><span class="line"> arr[pos] = arr[i];</span><br><span class="line"> arr[i] = arr[pos];</span><br><span class="line"> }</span><br><span class="line"> // 由于我们实现的二分搜索树不是平衡二叉树,</span><br><span class="line"> // 所以如果按照顺序插入一组数据,我们的二分搜索树会退化成为一个链表</span><br><span class="line"> // 平衡二叉树的实现,我们在这个课程中没有涉及,</span><br><span class="line"> // 有兴趣的同学可以查看资料自学诸如红黑树的实现</span><br><span class="line"> // 以后有机会,我会在别的课程里向大家介绍平衡二叉树的实现的:)</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"> // 我们测试用的的二分搜索树的键类型为Integer,值类型为String</span><br><span class="line"> // 键值的对应关系为每个整型对应代表这个整型的字符串</span><br><span class="line"> BST<Integer,String> bst = new BST<Integer,String>();</span><br><span class="line"> for(int i = 0 ; i < N ; i ++)</span><br><span class="line"> bst.insert(new Integer(arr[i]), Integer.toString(arr[i]));</span><br><span class="line"></span><br><span class="line"> // 对[0...2*N)的所有整型测试在二分搜索树中查找</span><br><span class="line"> // 若i在[0...N)之间,则能查找到整型所对应的字符串</span><br><span class="line"> // 若i在[N...2*N)之间,则结果为null</span><br><span class="line"> for(int i = 0 ; i < 2*N ; i ++){</span><br><span class="line"> String res = bst.search(new Integer(i));</span><br><span class="line"> if( i < N )</span><br><span class="line"> assert res.equals(Integer.toString(i));</span><br><span class="line"> else</span><br><span class="line"> assert res == null;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure></p><p>Main.java<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br></pre></td><td class="code"><pre><span class="line">package bobo.algo;</span><br><span class="line"></span><br><span class="line">import java.util.Vector;</span><br><span class="line"></span><br><span class="line">public class Main {</span><br><span class="line"></span><br><span class="line"> // 测试二分搜索树的前中后序遍历</span><br><span class="line"> public static void main(String[] args) {</span><br><span class="line"></span><br><span class="line"> BST<Integer, Integer> bst = new BST<Integer, Integer>();</span><br><span class="line"></span><br><span class="line"> // 取n个取值范围在[0...m)的随机整数放进二分搜索树中</span><br><span class="line"> int N = 10;</span><br><span class="line"> int M = 100;</span><br><span class="line"> for(int i = 0 ; i < N ; i ++){</span><br><span class="line"> Integer key = new Integer((int)(Math.random()*M));</span><br><span class="line"> // 为了后续测试方便,这里value值取和key值一样</span><br><span class="line"> bst.insert(key, key);</span><br><span class="line"> System.out.print(key + " ");</span><br><span class="line"> }</span><br><span class="line"> System.out.println();</span><br><span class="line"></span><br><span class="line"> // 测试二分搜索树的size()</span><br><span class="line"> System.out.println("size: " + bst.size());</span><br><span class="line"> System.out.println();</span><br><span class="line"></span><br><span class="line"> // 测试二分搜索树的前序遍历 preOrder</span><br><span class="line"> System.out.println("preOrder: ");</span><br><span class="line"> bst.preOrder();</span><br><span class="line"> System.out.println();</span><br><span class="line"></span><br><span class="line"> // 测试二分搜索树的中序遍历 inOrder</span><br><span class="line"> System.out.println("inOrder: ");</span><br><span class="line"> bst.inOrder();</span><br><span class="line"> System.out.println();</span><br><span class="line"></span><br><span class="line"> // 测试二分搜索树的后序遍历 postOrder</span><br><span class="line"> System.out.println("postOrder: ");</span><br><span class="line"> bst.postOrder();</span><br><span class="line"> System.out.println();</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure></p>]]></content>
<summary type="html">
<p>前序:先访问当前结点,再依次地柜访问左右子树.<br>中序:先递归访问左子树,再访问自身,再递归访问右子树.<br>后续:先递归访问左右子树,再访问自身结点.<br>以下三个点内涵:<br>第一个点:先<br>第二个点:中<br>第三个点:后<br><img src="ht
</summary>
</entry>
<entry>
<title>github从入门到放弃,使用git上传本地项目</title>
<link href="http://yoursite.com/2017/09/02/github%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E6%94%BE%E5%BC%83%EF%BC%8C%E4%BD%BF%E7%94%A8git%E4%B8%8A%E4%BC%A0%E6%9C%AC%E5%9C%B0%E9%A1%B9%E7%9B%AE/"/>
<id>http://yoursite.com/2017/09/02/github从入门到放弃,使用git上传本地项目/</id>
<published>2017-09-02T03:23:23.000Z</published>
<updated>2017-09-02T03:13:32.000Z</updated>
<content type="html"><![CDATA[<h1 id="创建github-repository-仓库"><a href="#创建github-repository-仓库" class="headerlink" title="创建github repository(仓库)"></a>创建github repository(仓库)</h1><h2 id="登录github"><a href="#登录github" class="headerlink" title="登录github"></a>登录github</h2><p>github的官方网址:<a href="https://github.com" target="_blank" rel="noopener">https://github.com</a> ,如果没有账号,赶紧注册一个。</p><h2 id="创建repository-仓库"><a href="#创建repository-仓库" class="headerlink" title="创建repository(仓库)"></a>创建repository(仓库)</h2><p>为啥要叫repository(仓库)?我起初也纳闷,叫代码库不更简单明了么? 但仔细一琢磨,仓库一般都是放粮食的吧,这是把代码当作饱腹之物,多有爱,瞬间觉得这冰冷冷的代码充满了查克拉。<br>扯远了,来看怎么创建仓库,登录后可以看到有repository选项卡<br><img src="https://i.imgur.com/gbU7CvX.png" alt=""><br>如果没在这个页面也没关系,点击右上角的头像旁边的小三角,展开后可以看到Your profile,点击进入后也能看到repository<br>然后新建一个仓库<br><img src="https://i.imgur.com/rzM4oJe.png" alt=""><br>创建成功后,可以看到自己的仓库地址,如此,我的远程免费的仓库就创建了。它还介绍了github仓库的常用指令。这个指令需要在本地安装git客户端。<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"> git init //把这个目录变成Git可以管理的仓库</span><br><span class="line"> git add README.md //文件添加到仓库</span><br><span class="line"> git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了 </span><br><span class="line"> git commit -m "first commit" //把文件提交到仓库</span><br><span class="line"> git remote add origin git@github.com:wangjiax9/practice.git //关联远程仓库</span><br><span class="line"> git push -u origin master //把本地库的所有内容推送到远程库上</span><br></pre></td></tr></table></figure></p><h1 id="安装git客户端"><a href="#安装git客户端" class="headerlink" title="安装git客户端"></a>安装git客户端</h1><h2 id="下载git客户端"><a href="#下载git客户端" class="headerlink" title="下载git客户端"></a>下载git客户端</h2><p>官方下载地址:<a href="http://git-scm.com/download/" target="_blank" rel="noopener">http://git-scm.com/download/</a> 根据你自己的系统 下载对应版本,全部默认配置安装,下一步即可</p><h2 id="绑定用户"><a href="#绑定用户" class="headerlink" title="绑定用户"></a>绑定用户</h2><p>打开git-bash.exe,在桌面快捷方式/开始菜单/安装目录中<br>因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识,用户和邮箱为你github注册的账号和邮箱<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">git config --global user.name "bkhacker"</span><br><span class="line">git config --global user.email "550560813@qq.com"</span><br></pre></td></tr></table></figure></p><p><img src="https://i.imgur.com/jwRSXu2.png" alt=""><br>ps:git config –global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。</p><h1 id="为Github账户设置SSH-key"><a href="#为Github账户设置SSH-key" class="headerlink" title="为Github账户设置SSH key"></a>为Github账户设置SSH key</h1><p>众所周知ssh key是加密传输。</p><p>加密传输的算法有好多,git使用rsa,rsa要解决的一个核心问题是,如何使用一对特定的数字,使其中一个数字可以用来加密,而另外一个数字可以用来解密。这两个数字就是你在使用git和github的时候所遇到的public key也就是公钥以及private key私钥。</p><p>其中,公钥就是那个用来加密的数字,这也就是为什么你在本机生成了公钥之后,要上传到github的原因。从github发回来的,用那公钥加密过的数据,可以用你本地的私钥来还原。</p><p>如果你的key丢失了,不管是公钥还是私钥,丢失一个都不能用了,解决方法也很简单,重新再生成一次,然后在github.com里再设置一次就行</p><h2 id="生成ssh-key"><a href="#生成ssh-key" class="headerlink" title="生成ssh key"></a>生成ssh key</h2><p>首先检查是否已生成密钥 cd ~/.ssh,ls如果有3个文件,则密钥已经生成,id_rsa.pub就是公钥<br><img src="https://i.imgur.com/Oz47uPu.png" alt=""><br>也可以打开我的电脑C:\Users\你电脑的用户名.ssh 里面找到<br><img src="https://i.imgur.com/HaekgUg.png" alt=""><br>如果没有生成,那么通过$ ssh-keygen -t rsa -C “6215048wjl@163.com”来生成。(改成自己的邮箱)</p><p>1)是路径确认,直接按回车存默认路径即可</p><p>2)直接回车键,这里我们不使用密码进行登录, 用密码太麻烦;</p><p>3)直接回车键<br><img src="https://i.imgur.com/600Ftaq.png" alt=""><br>生成成功后,去对应目录C:\Users\specter.ssh里(specter为电脑用户名,每个人不同)用记事本打开id_rsa.pub,得到ssh key公钥<br><img src="https://i.imgur.com/f25pAmd.png" alt=""></p><h2 id="为github账号配置ssh-key"><a href="#为github账号配置ssh-key" class="headerlink" title="为github账号配置ssh key"></a>为github账号配置ssh key</h2><p>切换到github,展开个人头像的小三角,点击settings<br>然后打开SSH keys菜单, 点击Add SSH key新增密钥,填上标题,跟仓库保持一致吧,好区分。</p><p>接着将id_rsa.pub文件中key粘贴到此,最后Add key生成密钥吧。<br><img src="https://i.imgur.com/bUT2w2z.png" alt=""><br>如此,github账号的SSH keys配置完成。</p><h1 id="上传本地项目到github"><a href="#上传本地项目到github" class="headerlink" title="上传本地项目到github"></a>上传本地项目到github</h1><h2 id="创建一个本地项目"><a href="#创建一个本地项目" class="headerlink" title="创建一个本地项目"></a>创建一个本地项目</h2><p>我这创建了几个空文件夹和一个文件及一个项目配置文件,好多前端项目都这样搭架构,我也追随潮流哈。</p><h2 id="建立本地仓库"><a href="#建立本地仓库" class="headerlink" title="建立本地仓库"></a>建立本地仓库</h2><p>再来复习一下创建新仓库的指令:<br> git init //把这个目录变成Git可以管理的仓库<br> git add README.md //文件添加到仓库<br> git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了<br> git commit -m “first commit” //把文件提交到仓库<br> git remote add origin git@github.com:wangjiax9/practice.git //关联远程仓库<br> git push -u origin master //把本地库的所有内容推送到远程库上<br>首先,进入到beautifulDay项目目录,还记得创建仓库成功后的那个页面吧,指令都在呢。</p><p>然后执行指令:git init<br><img src="https://i.imgur.com/x7Xxuax.png" alt=""><br>初始化成功后你会发现项目里多了一个隐藏文件夹.git</p><p>这个目录是Git用来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。<br><img src="https://i.imgur.com/7z4V9DB.png" alt=""><br>接着,将所有文件添加到仓库</p><p>执行指令:git add .<br><img src="https://i.imgur.com/PTMZGvw.png" alt=""><br>然后,把文件提交到仓库,双引号内是提交注释。</p><p>执行指令:git commit -m “提交文件”<br><img src="https://i.imgur.com/09wKa5E.png" alt=""></p><p>如此本地仓库建立好了。</p><h2 id="关联github仓库"><a href="#关联github仓库" class="headerlink" title="关联github仓库"></a>关联github仓库</h2><p>到github beautifulDay仓库复制仓库地址<br><img src="https://i.imgur.com/M6oSN8Z.png" alt=""><br>然后执行指令:git remote add origin git@github.com:wangjiax9/beautifulDay.git<br><img src="https://i.imgur.com/r0dc2QG.png" alt=""></p><h1 id="上传本地代码"><a href="#上传本地代码" class="headerlink" title="上传本地代码"></a>上传本地代码</h1><p>执行指令:git push -u origin master</p><p>1)敲一个:yes, 然后回车<br><img src="https://i.imgur.com/lza0Kya.png" alt=""><br>到此,本地代码已经推送到github仓库了,我们现在去githubt仓库看看。</p><p>咦!奇怪了,我的目录呢?这个坑突然冒出来是不是印象很深刻呢~</p><p>注意咯:git是不能管理空的文件夹的,文件夹里必须有文件才能add<br>好,我们来试一下,我在examples里新建了一个test1.html文件<br><img src="https://i.imgur.com/gmT4Lbw.png" alt=""><br>执行指令添加文件->提交文件->推送文件</p><p>git add .</p><p>git commit -m “提交test1.html”</p><p>git push -u origin master<br><img src="https://i.imgur.com/Naq5AA3.png" alt=""><br>然后刷新一个github,你会看到,examples文件夹出来了。<br>如果大家想要知道更多的git操作和知识,推荐去看看缪雪峰的git教程,讲得很详细。</p><p>ps手记:<br>创建本地代码仓库<br>打开Git Bash<br>首先配置自己的身份,这样在提交代码的时候就能知道是谁提交的<br>输入git config –global user.name “名字”<br>git config –global user.email “邮箱地址”<br>然后开始创建代码仓库,这里以测试项目helloworld为例<br>输入git init就可以创建啦~<br>然后使用ls -al查询代码仓库,如果想删除这个仓库,直接从目录下删除这个文件夹就可以了..<br>提交本地代码<br>仓库建立完成之后就可以提交本地代码了,这里只需要用到两个命令,add添加和commit提交<br>add .是提交所有<br>add +文件名是提交单个文件<br>git commit -m “First commit”是提交这里要在-m参数后面加上提交参数,很重要哟,不然会被认为不合法不能提交.<br>创建GitHub账户以及托管本地代码<br>进入官网,点击Sign up for GitHub注册<br><a href="https://github.com/" target="_blank" rel="noopener">https://github.com/</a><br>接着点击New repository新建版本库,<br>点击create repository按钮,之后会显示你的版本库主页<br> 之后获取远程版本库的地址,非常重要<br>然后打开Gitbash<br>切换到helloworld工程目录下,把远程版本库克隆到本地<br>git clone <a href="https://github.com/bkhacker/generatorSqlmapCustom.git" target="_blank" rel="noopener">https://github.com/bkhacker/generatorSqlmapCustom.git</a><br>有时候会传输超时。。就再试几次。。<br>这个时候你的工程目录下会多出一个helloworld文件夹,把这个文件夹里的所有目录复制到上一层目录中,就能将整个工程添加到版本控制中去了<br>这里这里有个隐藏的.git文件,不要漏掉!!!<br>复制完之后可以删掉helloworld目录,之后ls -al查看工程目录<br>然后就是提交到Github上面的工作了!!!<br>先执行提交操作git commit,然后输入 git push origin master同步<br>注意这里要记得输入用户名和密码进行身份效验!!切记!不要以为它不动了。<br>输入密码的时候不会显示。。但是输完回车就行了。</p>]]></content>
<summary type="html">
<h1 id="创建github-repository-仓库"><a href="#创建github-repository-仓库" class="headerlink" title="创建github repository(仓库)"></a>创建github repository
</summary>
</entry>
<entry>
<title>通过ViewObject类构建视图</title>
<link href="http://yoursite.com/2017/09/01/%E9%80%9A%E8%BF%87ViewObject%E7%B1%BB%E6%9E%84%E5%BB%BA%E8%A7%86%E5%9B%BE/"/>
<id>http://yoursite.com/2017/09/01/通过ViewObject类构建视图/</id>
<published>2017-09-01T08:37:14.000Z</published>
<updated>2017-09-01T08:37:39.000Z</updated>
<content type="html"><![CDATA[<p>通过ViewObject类构建视图</p><p>在开发中,我们通常需要查询多个表的数据,通过主外键关系进行连表查询<br>但是随着数据量的增加和用户访问的增加,我们使用索引来优化访问速度。<br>如下我们举个例子:<br><img src="http://i.imgur.com/ZjXjZ4P.png" alt=""><br>这个项目 是头条资讯网站,当我们点击首页的资讯,就可以进入到资讯的详情页。<br>当我们进入到资讯详情页面,我们重点去关注资讯详情中的评论中心功能。<br>如上图,我们评论区主要是去读取两个表,分别为用户表和评论表。<br>如下是我们的评论表和用户表<br><img src="http://i.imgur.com/XvC4P6d.png" alt=""></p><p><img src="http://i.imgur.com/oTuyxQb.png" alt=""></p><p>ViewObject类如下:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">public class ViewObject {</span><br><span class="line"> private Map<String, Object> objs = new HashMap<String, Object>();</span><br><span class="line"> public void set(String key, Object value) {</span><br><span class="line"> objs.put(key, value);</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> public Object get(String key) {</span><br><span class="line"> return objs.get(key);</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure></p><p>在后端操作如下:<br><img src="http://i.imgur.com/H8rNjZ2.png" alt=""></p><p>前端代码如下:<br><img src="http://i.imgur.com/ohWeuO1.png" alt=""></p><p>这里用的前端模板引擎是velocity,通过遍历去读取数据就可以了</p>]]></content>
<summary type="html">
<p>通过ViewObject类构建视图</p>
<p>在开发中,我们通常需要查询多个表的数据,通过主外键关系进行连表查询<br>但是随着数据量的增加和用户访问的增加,我们使用索引来优化访问速度。<br>如下我们举个例子:<br><img src="http://i.imgur.
</summary>
</entry>
<entry>
<title>JAVA使用GSON解析JSON数据</title>
<link href="http://yoursite.com/2017/09/01/JAVA%E4%BD%BF%E7%94%A8GSON%E8%A7%A3%E6%9E%90JSON%E6%8D%AE/"/>
<id>http://yoursite.com/2017/09/01/JAVA使用GSON解析JSON据/</id>
<published>2017-09-01T07:23:23.000Z</published>
<updated>2017-09-01T07:30:52.000Z</updated>
<content type="html"><![CDATA[<p>使用第三方api的使用,有时候会从网络中获得json数据,所以说我们将如何解析json数据?</p><p> 下面小编将通过以下几点来进行json的讲解</p><h2 id="1-什么是JSON?-(http-www-json-org-)"><a href="#1-什么是JSON?-(http-www-json-org-)" class="headerlink" title="1.什么是JSON? (http://www.json.org/)"></a>1.什么是JSON? (<a href="http://www.json.org/)" target="_blank" rel="noopener">http://www.json.org/)</a></h2><p>JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.</p><p><img src="http://i.imgur.com/WgICOQT.png" alt=""></p><h2 id="2-Json数据类型"><a href="#2-Json数据类型" class="headerlink" title="2.Json数据类型"></a>2.Json数据类型</h2><h3 id="2-1-json对象"><a href="#2-1-json对象" class="headerlink" title="2-1.json对象"></a>2-1.json对象</h3><p><img src="http://i.imgur.com/s9Qu84s.png" alt=""></p><h4 id="ps:JSONObject与JSONArray的区别"><a href="#ps:JSONObject与JSONArray的区别" class="headerlink" title="ps:JSONObject与JSONArray的区别"></a>ps:JSONObject与JSONArray的区别</h4><p><img src="http://i.imgur.com/mTGj8YU.png" alt="">(JSON数组)</p><p><img src="http://i.imgur.com/a7I4yFc.png" alt="">(JSON数组)</p><h2 id="3-解析JSON数据(小编使用的GSON进行json数据的解析)"><a href="#3-解析JSON数据(小编使用的GSON进行json数据的解析)" class="headerlink" title="3.解析JSON数据(小编使用的GSON进行json数据的解析)"></a>3.解析JSON数据(小编使用的GSON进行json数据的解析)</h2><h3 id="3-1-【JSONObject的解析】"><a href="#3-1-【JSONObject的解析】" class="headerlink" title="3-1 【JSONObject的解析】"></a>3-1 【JSONObject的解析】</h3><p>下面是一个json文件<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> "resultcode": "200",</span><br><span class="line"> "reason": "successed!",</span><br><span class="line"> "result": {</span><br><span class="line"> "sk": {</span><br><span class="line"> "temp": "24",</span><br><span class="line"> "wind_direction": "西南风",</span><br><span class="line"> "wind_strength": "2级",</span><br><span class="line"> "humidity": "51%",</span><br><span class="line"> "time": "10:11"</span><br><span class="line"> },</span><br><span class="line"> "today": {</span><br><span class="line"> "temperature": "16℃~27℃",</span><br><span class="line"> "weather": "阴转多云",</span><br><span class="line"> "weather_id": {</span><br><span class="line"> "fa": "02",</span><br><span class="line"> "fb": "01"</span><br><span class="line"> },</span><br><span class="line"> "wind": "西南风3-4 级",</span><br><span class="line"> "week": "星期四",</span><br><span class="line"> "city": "滨州",</span><br><span class="line"> "date_y": "2015年06月04日",</span><br><span class="line"> "dressing_index": "舒适",</span><br><span class="line"> "dressing_advice": "建议着长袖T恤、衬衫加单裤等服装。年老体弱者宜着针织长袖衬衫、马甲和长裤。",</span><br><span class="line"> "uv_index": "最弱",</span><br><span class="line"> "comfort_index": "",</span><br><span class="line"> "wash_index": "较适宜",</span><br><span class="line"> "travel_index": "",</span><br><span class="line"> "exercise_index": "较适宜",</span><br><span class="line"> "drying_index": ""</span><br><span class="line"> },</span><br><span class="line"> "future": [</span><br><span class="line"> {</span><br><span class="line"> "temperature": "16℃~27℃",</span><br><span class="line"> "weather": "阴转多云",</span><br><span class="line"> "weather_id": {</span><br><span class="line"> "fa": "02",</span><br><span class="line"> "fb": "01"</span><br><span class="line"> },</span><br><span class="line"> "wind": "西南风3-4 级",</span><br><span class="line"> "week": "星期四",</span><br><span class="line"> "date": "20150604"</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> "temperature": "20℃~32℃",</span><br><span class="line"> "weather": "多云转晴",</span><br><span class="line"> "weather_id": {</span><br><span class="line"> "fa": "01",</span><br><span class="line"> "fb": "00"</span><br><span class="line"> },</span><br><span class="line"> "wind": "西风3-4 级",</span><br><span class="line"> "week": "星期五",</span><br><span class="line"> "date": "20150605"</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> "temperature": "23℃~35℃",</span><br><span class="line"> "weather": "多云转阴",</span><br><span class="line"> "weather_id": {</span><br><span class="line"> "fa": "01",</span><br><span class="line"> "fb": "02"</span><br><span class="line"> },</span><br><span class="line"> "wind": "西南风3-4 级",</span><br><span class="line"> "week": "星期六",</span><br><span class="line"> "date": "20150606"</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> "temperature": "20℃~33℃",</span><br><span class="line"> "weather": "多云",</span><br><span class="line"> "weather_id": {</span><br><span class="line"> "fa": "01",</span><br><span class="line"> "fb": "01"</span><br><span class="line"> },</span><br><span class="line"> "wind": "北风微风",</span><br><span class="line"> "week": "星期日",</span><br><span class="line"> "date": "20150607"</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> "temperature": "22℃~34℃",</span><br><span class="line"> "weather": "多云",</span><br><span class="line"> "weather_id": {</span><br><span class="line"> "fa": "01",</span><br><span class="line"> "fb": "01"</span><br><span class="line"> },</span><br><span class="line"> "wind": "西南风3-4 级",</span><br><span class="line"> "week": "星期一",</span><br><span class="line"> "date": "20150608"</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> "temperature": "22℃~33℃",</span><br><span class="line"> "weather": "阴",</span><br><span class="line"> "weather_id": {</span><br><span class="line"> "fa": "02",</span><br><span class="line"> "fb": "02"</span><br><span class="line"> },</span><br><span class="line"> "wind": "西南风3-4 级",</span><br><span class="line"> "week": "星期二",</span><br><span class="line"> "date": "20150609"</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> "temperature": "22℃~33℃",</span><br><span class="line"> "weather": "多云",</span><br><span class="line"> "weather_id": {</span><br><span class="line"> "fa": "01",</span><br><span class="line"> "fb": "01"</span><br><span class="line"> },</span><br><span class="line"> "wind": "南风3-4 级",</span><br><span class="line"> "week": "星期三",</span><br><span class="line"> "date": "20150610"</span><br><span class="line"> }</span><br><span class="line"> ]</span><br><span class="line"> },</span><br><span class="line"> "error_code": 0</span><br><span class="line">}</span><br></pre></td></tr></table></figure></p><p>我们进行解析(解析一部分)<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br></pre></td><td class="code"><pre><span class="line">package cn.edu.bzu.json;</span><br><span class="line"> </span><br><span class="line">import java.io.FileNotFoundException;</span><br><span class="line">import java.io.FileReader;</span><br><span class="line"> </span><br><span class="line">import com.google.gson.JsonArray;</span><br><span class="line">import com.google.gson.JsonIOException;</span><br><span class="line">import com.google.gson.JsonObject;</span><br><span class="line">import com.google.gson.JsonParser;</span><br><span class="line">import com.google.gson.JsonSyntaxException;</span><br><span class="line"> </span><br><span class="line">public class Read {</span><br><span class="line"> public static void main(String args[]){</span><br><span class="line"> JsonParser parse =new JsonParser(); //创建json解析器</span><br><span class="line"> try {</span><br><span class="line"> JsonObject json=(JsonObject) parse.parse(new FileReader("weather.json")); //创建jsonObject对象</span><br><span class="line"> System.out.println("resultcode:"+json.get("resultcode").getAsInt()); //将json数据转为为int型的数据</span><br><span class="line"> System.out.println("reason:"+json.get("reason").getAsString()); //将json数据转为为String型的数据</span><br><span class="line"> </span><br><span class="line"> JsonObject result=json.get("result").getAsJsonObject();</span><br><span class="line"> JsonObject today=result.get("today").getAsJsonObject();</span><br><span class="line"> System.out.println("temperature:"+today.get("temperature").getAsString());</span><br><span class="line"> System.out.println("weather:"+today.get("weather").getAsString());</span><br><span class="line"> </span><br><span class="line"> } catch (JsonIOException e) {</span><br><span class="line"> e.printStackTrace();</span><br><span class="line"> } catch (JsonSyntaxException e) {</span><br><span class="line"> e.printStackTrace();</span><br><span class="line"> } catch (FileNotFoundException e) {</span><br><span class="line"> e.printStackTrace();</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure></p><p>输出结果:<br><img src="http://i.imgur.com/kfz7cd9.png" alt=""></p><h3 id="3-2-【JSONArray的解析】"><a href="#3-2-【JSONArray的解析】" class="headerlink" title="3-2 【JSONArray的解析】"></a>3-2 【JSONArray的解析】</h3><p>下面是一个json文件<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> "cat":"it",</span><br><span class="line"> "language":[</span><br><span class="line"> {"id":1,"ide":"eclipse","name":Java},</span><br><span class="line"> {"id":2,"ide":"XCode","name":"Swift"},</span><br><span class="line"> {"id":3,"ide":"Visual Stdio","name":"C#"} </span><br><span class="line"> ],</span><br><span class="line"> "pop":true</span><br><span class="line">}</span><br></pre></td></tr></table></figure></p><p>我们进行解析:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br></pre></td><td class="code"><pre><span class="line">package cn.edu.bzu.json;</span><br><span class="line"> </span><br><span class="line">import java.io.FileNotFoundException;</span><br><span class="line">import java.io.FileReader;</span><br><span class="line"> </span><br><span class="line">import com.google.gson.JsonArray;</span><br><span class="line">import com.google.gson.JsonIOException;</span><br><span class="line">import com.google.gson.JsonObject;</span><br><span class="line">import com.google.gson.JsonParser;</span><br><span class="line">import com.google.gson.JsonSyntaxException;</span><br><span class="line"> </span><br><span class="line">public class ReadJSON {</span><br><span class="line"> public static void main(String args[]){</span><br><span class="line"> try {</span><br><span class="line"> </span><br><span class="line"> JsonParser parser=new JsonParser(); //创建JSON解析器</span><br><span class="line"> JsonObject object=(JsonObject) parser.parse(new FileReader("test.json")); //创建JsonObject对象</span><br><span class="line"> System.out.println("cat="+object.get("cat").getAsString()); //将json数据转为为String型的数据</span><br><span class="line"> System.out.println("pop="+object.get("pop").getAsBoolean()); //将json数据转为为boolean型的数据</span><br><span class="line"> </span><br><span class="line"> JsonArray array=object.get("language").getAsJsonArray(); //得到为json的数组</span><br><span class="line"> for(int i=0;i<array.size();i++){</span><br><span class="line"> System.out.println("---------------");</span><br><span class="line"> JsonObject subObject=array.get(i).getAsJsonObject();</span><br><span class="line"> System.out.println("id="+subObject.get("id").getAsInt());</span><br><span class="line"> System.out.println("name="+subObject.get("name").getAsString());</span><br><span class="line"> System.out.println("ide="+subObject.get("ide").getAsString());</span><br><span class="line"> }</span><br><span class="line"> </span><br><span class="line"> } catch (JsonIOException e) {</span><br><span class="line"> e.printStackTrace();</span><br><span class="line"> } catch (JsonSyntaxException e) {</span><br><span class="line"> e.printStackTrace();</span><br><span class="line"> } catch (FileNotFoundException e) {</span><br><span class="line"> e.printStackTrace();</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure></p><p>输出结果:<br><img src="http://i.imgur.com/d4NZQCZ.png" alt=""></p><h3 id="3-3-【分析】"><a href="#3-3-【分析】" class="headerlink" title="3-3 【分析】"></a>3-3 【分析】</h3><p>我们通过Gson进行解析,所以在使用前需要导入Gson.jar</p><p>解析json数据时,</p><p>1.需要进行创建Gson解析器</p><p>2.创建JSONObject对象</p><p>3.将json数据转为为相应的数据<br>ps:maven依赖:<a href="https://mvnrepository.com/" target="_blank" rel="noopener">https://mvnrepository.com/</a></p><blockquote><p>第三方api之解析bmob的json<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line">private static void Search() {</span><br><span class="line"> BSONObject where1 = new BSONObject(Where.less(10));</span><br><span class="line"> BSONObject where = new BSONObject();</span><br><span class="line"> String result = Bmob.find("VideoInfo", where.toString(), 0, 50, "order");</span><br><span class="line"> System.out.println(result);</span><br><span class="line"> JsonParser parser=new JsonParser(); //创建JSON解析器</span><br><span class="line"> try {</span><br><span class="line"> JsonObject object=(JsonObject) parser.parse(result);</span><br><span class="line"> JsonArray jsonArray = object.getAsJsonArray("results");</span><br><span class="line"> for (int i=0;i<jsonArray.size();i++) {</span><br><span class="line"> JsonObject subObject=jsonArray.get(i).getAsJsonObject();</span><br><span class="line"> System.out.println("id="+subObject.get("title").getAsString());</span><br><span class="line"> }</span><br><span class="line"> } catch (Exception e) {</span><br><span class="line"> e.printStackTrace();</span><br><span class="line"> }</span><br><span class="line"> }</span><br></pre></td></tr></table></figure></p></blockquote>]]></content>
<summary type="html">
<p>使用第三方api的使用,有时候会从网络中获得json数据,所以说我们将如何解析json数据?</p>
<p> 下面小编将通过以下几点来进行json的讲解</p>
<h2 id="1-什么是JSON?-(http-www-json-org-)"><a href="#1-什么
</summary>
</entry>
</feed>