第一題: 元素的復(fù)制
從江網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,從江網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為從江1000多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的從江做網(wǎng)站的公司定做!
import?java.util.Arrays;
public?class?ArrayDemo?{
public?static?void?main(String[]?args)?{
int[]?scores?=?{91,85,98,62,78,93};
int[]?newScores=Arrays.copyOfRange(scores,?0,?5);//復(fù)制元素,?左開右閉區(qū)間[0,5)
System.out.println(Arrays.toString(newScores));//調(diào)用數(shù)組工具類的方法轉(zhuǎn)成字符串并打印
}
}
第二題: 這題雖然使用集合更方便 , 但卻是非常好的一維數(shù)組的訓(xùn)練題目.
解法一: 集合解決 隨機(jī)產(chǎn)生7個(gè)不重復(fù)的數(shù)字很簡(jiǎn)單
import?java.util.HashSet;
import?java.util.Random;
public?class?NumberTest?{
public?static?void?main(String[]?args)?{
HashSetInteger?set=??new?HashSetInteger();//元素不可重復(fù)的無(wú)序集合
Random?rd=new?Random();//隨機(jī)產(chǎn)生器
while(set.size()7)?{
set.add(rd.nextInt(36)+1);//產(chǎn)生1~36的隨機(jī)數(shù)
//如果元素重復(fù),?那么添加不上去
}
System.out.println(set);
}
}
解法二:一維數(shù)組 ,解決產(chǎn)生7個(gè)數(shù)字, 并升序排列
int[] ? ? ?nums 數(shù)組存儲(chǔ)1~36個(gè)數(shù)組
boolean[] flags 數(shù)組存儲(chǔ)的是和nums數(shù)組一一對(duì)應(yīng)的true或者false,如果使用了就標(biāo)記為true.,如果沒(méi)有使用標(biāo)記為false,
例如 隨機(jī)產(chǎn)生了一個(gè)下標(biāo)0 ?,那么查看flags[0] ,如果是true, 那么說(shuō)明該元素已經(jīng)使用了,重新產(chǎn)生一個(gè)隨機(jī)數(shù), 如果是false ,那么表示nums[0]沒(méi)有被使用
具體代碼如下(稍微留個(gè)尾巴, 就是中不中的判斷, 可以把兩個(gè)數(shù)組都升序排序,然后元素一一比較,全部相同就是中了)
import?java.util.Arrays;
import?java.util.Random;
public?class?NumberDemo?{
public?static?void?main(String[]?args)?{
int[]?nums=?new?int[36];//長(zhǎng)度為36的數(shù)組?,默認(rèn)全是0
for?(int?i?=?0;?i??nums.length;?i++)?{//利用for循環(huán)賦值1~36
nums[i]=i+1;
}
boolean[]?flags=new?boolean[nums.length];//長(zhǎng)度和nums相同的數(shù)組,默認(rèn)值全是false?,表示全部沒(méi)有使用過(guò)
//用boolean值表示對(duì)應(yīng)的nums里的元素是否被使用
int[]?result=new?int[7];//存儲(chǔ)結(jié)果
Random?rd?=?new?Random();
for?(int?i?=?0;?i??result.length;?i++)?{
int?temp=rd.nextInt(nums.length);//隨機(jī)產(chǎn)生下標(biāo)
//System.out.println(Arrays.toString(result));
if(flags[temp])?{//如果已經(jīng)被使用,那么i-1,并在此循環(huán)
i--;
//System.out.println("號(hào)碼"+nums[temp]+"已經(jīng)存在.再次循環(huán)");
}else?{
result[i]=nums[temp];
flags[temp]=true;//標(biāo)記true表示已經(jīng)使用了
}
}
System.out.println("原始排序:"+Arrays.toString(result));
Arrays.sort(result);//升序排列
System.out.println("升序排列:"+Arrays.toString(result));
}
}
保存字節(jié)數(shù)組到數(shù)據(jù)庫(kù)分兩步:
第一、利用FileInputStream.read(byte[])方法把內(nèi)容讀取到byte[]數(shù)組中,比如圖片是由二進(jìn)制數(shù)組成的,就可以定義為一個(gè)字節(jié)數(shù)組。
第二、在數(shù)據(jù)庫(kù)中對(duì)應(yīng)記錄字段應(yīng)該設(shè)置為blob類型,這樣就能夠順利保存了
事例代碼如下:
PreparedStatement stmt = connection.generatePreparedStatement("INSERT INTO ... ");
stmt.setBytes(1, yourByteArray);
其中,yourByteArray是你讀出來(lái)的字符數(shù)組。
1、獲取從頁(yè)面?zhèn)鬟^(guò)來(lái)的參數(shù)。
2、把參數(shù)添加到Map集合中。
3、進(jìn)行參數(shù)類型的判斷和拼接。
4、這樣即可用java配置兩個(gè)參數(shù)代碼。
因?yàn)閷?duì)于邏輯運(yùn)算符有邏輯短路問(wèn)題,也就是說(shuō)當(dāng)邏輯運(yùn)算符的前面一個(gè)邏輯表達(dá)式為false時(shí),編譯程序會(huì)跳過(guò)邏輯運(yùn)算符后面的邏輯表達(dá)式,直接判斷整個(gè)邏輯表達(dá)式為false.
對(duì)于你的程序中if((j++5) (j++9))當(dāng)j=3時(shí)因?yàn)閖++5為false,所以程序直接判定整個(gè)表達(dá)式為false,所以沒(méi)有執(zhí)行j++9,也就使j少加了一個(gè)1,所以j等于4
而是位運(yùn)算符不存在上述問(wèn)題,所以if((i++5) (i++9))計(jì)算了兩個(gè)i++,所以i等于5
步驟:
一、新建一個(gè).java文件,文件名可不能隨便亂取,要與公共類名一致(區(qū)分大小寫) 如 Test.java
二、書寫代碼
public class Test{
public static void main(String[] args){
System.out.println("2*8="+2*8);
}
}
三、編譯
如沒(méi)有IDE(集成開發(fā)環(huán)境)
就在命令提示符下使用 javac Test.java
然后執(zhí)行 java Test
注意:提示符的路徑為 Test.java所在的路徑
已經(jīng)通過(guò)本人測(cè)試,沒(méi)有問(wèn)題!
你說(shuō)的是二叉樹吧·····
/**
* 二叉樹測(cè)試二叉樹順序存儲(chǔ)在treeLine中,遞歸前序創(chuàng)建二叉樹。另外還有能
* 夠前序、中序、后序、按層遍歷二叉樹的方法以及一個(gè)返回遍歷結(jié)果asString的
* 方法。
*/
public class BitTree {
public static Node2 root;
public static String asString;
//事先存入的數(shù)組,符號(hào)#表示二叉樹結(jié)束。
public static final char[] treeLine = {'a','b','c','d','e','f','g',' ',' ','j',' ',' ','i','#'};
//用于標(biāo)志二叉樹節(jié)點(diǎn)在數(shù)組中的存儲(chǔ)位置,以便在創(chuàng)建二叉樹時(shí)能夠找到節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)。
static int index;
//構(gòu)造函數(shù)
public BitTree() {
System.out.print("測(cè)試二叉樹的順序表示為:");
System.out.println(treeLine);
this.index = 0;
root = this.setup(root);
}
//創(chuàng)建二叉樹的遞歸程序
private Node2 setup(Node2 current) {
if (index = treeLine.length) return current;
if (treeLine[index] == '#') return current;
if (treeLine[index] == ' ') return current;
current = new Node2(treeLine[index]);
index = index * 2 + 1;
current.left = setup(current.left);
index ++;
current.right = setup(current.right);
index = index / 2 - 1;
return current;
}
//二叉樹是否為空。
public boolean isEmpty() {
if (root == null) return true;
return false;
}
//返回遍歷二叉樹所得到的字符串。
public String toString(int type) {
if (type == 0) {
asString = "前序遍歷:\t";
this.front(root);
}
if (type == 1) {
asString = "中序遍歷:\t";
this.middle(root);
}
if (type == 2) {
asString = "后序遍歷:\t";
this.rear(root);
}
if (type == 3) {
asString = "按層遍歷:\t";
this.level(root);
}
return asString;
}
//前序遍歷二叉樹的循環(huán)算法,每到一個(gè)結(jié)點(diǎn)先輸出,再壓棧,然后訪問(wèn)它的左子樹,
//出棧,訪問(wèn)其右子樹,然后該次循環(huán)結(jié)束。
private void front(Node2 current) {
StackL stack = new StackL((Object)current);
do {
if (current == null) {
current = (Node2)stack.pop();
current = current.right;
} else {
asString += current.ch;
current = current.left;
}
if (!(current == null)) stack.push((Object)current);
} while (!(stack.isEmpty()));
}
//中序遍歷二叉樹
private void middle(Node2 current) {
if (current == null) return;
middle(current.left);
asString += current.ch;
middle(current.right);
}
//后序遍歷二叉樹的遞歸算法
private void rear(Node2 current) {
if (current == null) return;
rear(current.left);
rear(current.right);
asString += current.ch;
}
}
/**
* 二叉樹所使用的節(jié)點(diǎn)類。包括一個(gè)值域兩個(gè)鏈域
*/
public class Node2 {
char ch;
Node2 left;
Node2 right;
//構(gòu)造函數(shù)
public Node2(char c) {
this.ch = c;
this.left = null;
this.right = null;
}
//設(shè)置節(jié)點(diǎn)的值
public void setChar(char c) {
this.ch = c;
}
//返回節(jié)點(diǎn)的值
public char getChar() {
return ch;
}
//設(shè)置節(jié)點(diǎn)的左孩子
public void setLeft(Node2 left) {
this.left = left;
}
//設(shè)置節(jié)點(diǎn)的右孩子
public void setRight (Node2 right) {
this.right = right;
}
//如果是葉節(jié)點(diǎn)返回true
public boolean isLeaf() {
if ((this.left == null) (this.right == null)) return true;
return false;
}
}
一個(gè)作業(yè)題,里面有你要的東西。
主函數(shù)自己寫吧。當(dāng)然其它地方也有要改的。