第一题: 元素的复制
从江网站建设公司创新互联建站,从江网站设计制作,有大型网站制作公司丰富经验。已为从江1000多家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的从江做网站的公司定做!
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);//复制元素, 左开右闭区间[0,5)
System.out.println(Arrays.toString(newScores));//调用数组工具类的方法转成字符串并打印
}
}
第二题: 这题虽然使用集合更方便 , 但却是非常好的一维数组的训练题目.
解法一: 集合解决 随机产生7个不重复的数字很简单
import java.util.HashSet;
import java.util.Random;
public class NumberTest {
public static void main(String[] args) {
HashSetInteger set= new HashSetInteger();//元素不可重复的无序集合
Random rd=new Random();//随机产生器
while(set.size()7) {
set.add(rd.nextInt(36)+1);//产生1~36的随机数
//如果元素重复, 那么添加不上去
}
System.out.println(set);
}
}
解法二:一维数组 ,解决产生7个数字, 并升序排列
int[] nums 数组存储1~36个数组
boolean[] flags 数组存储的是和nums数组一一对应的true或者false,如果使用了就标记为true.,如果没有使用标记为false,
例如 随机产生了一个下标0 ,那么查看flags[0] ,如果是true, 那么说明该元素已经使用了,重新产生一个随机数, 如果是false ,那么表示nums[0]没有被使用
具体代码如下(稍微留个尾巴, 就是中不中的判断, 可以把两个数组都升序排序,然后元素一一比较,全部相同就是中了)
import java.util.Arrays;
import java.util.Random;
public class NumberDemo {
public static void main(String[] args) {
int[] nums= new int[36];//长度为36的数组 ,默认全是0
for (int i = 0; i nums.length; i++) {//利用for循环赋值1~36
nums[i]=i+1;
}
boolean[] flags=new boolean[nums.length];//长度和nums相同的数组,默认值全是false ,表示全部没有使用过
//用boolean值表示对应的nums里的元素是否被使用
int[] result=new int[7];//存储结果
Random rd = new Random();
for (int i = 0; i result.length; i++) {
int temp=rd.nextInt(nums.length);//随机产生下标
//System.out.println(Arrays.toString(result));
if(flags[temp]) {//如果已经被使用,那么i-1,并在此循环
i--;
//System.out.println("号码"+nums[temp]+"已经存在.再次循环");
}else {
result[i]=nums[temp];
flags[temp]=true;//标记true表示已经使用了
}
}
System.out.println("原始排序:"+Arrays.toString(result));
Arrays.sort(result);//升序排列
System.out.println("升序排列:"+Arrays.toString(result));
}
}
保存字节数组到数据库分两步:
第一、利用FileInputStream.read(byte[])方法把内容读取到byte[]数组中,比如图片是由二进制数组成的,就可以定义为一个字节数组。
第二、在数据库中对应记录字段应该设置为blob类型,这样就能够顺利保存了
事例代码如下:
PreparedStatement stmt = connection.generatePreparedStatement("INSERT INTO ... ");
stmt.setBytes(1, yourByteArray);
其中,yourByteArray是你读出来的字符数组。
1、获取从页面传过来的参数。
2、把参数添加到Map集合中。
3、进行参数类型的判断和拼接。
4、这样即可用java配置两个参数代码。
因为对于逻辑运算符有逻辑短路问题,也就是说当逻辑运算符的前面一个逻辑表达式为false时,编译程序会跳过逻辑运算符后面的逻辑表达式,直接判断整个逻辑表达式为false.
对于你的程序中if((j++5) (j++9))当j=3时因为j++5为false,所以程序直接判定整个表达式为false,所以没有执行j++9,也就使j少加了一个1,所以j等于4
而是位运算符不存在上述问题,所以if((i++5) (i++9))计算了两个i++,所以i等于5
步骤:
一、新建一个.java文件,文件名可不能随便乱取,要与公共类名一致(区分大小写) 如 Test.java
二、书写代码
public class Test{
public static void main(String[] args){
System.out.println("2*8="+2*8);
}
}
三、编译
如没有IDE(集成开发环境)
就在命令提示符下使用 javac Test.java
然后执行 java Test
注意:提示符的路径为 Test.java所在的路径
已经通过本人测试,没有问题!
你说的是二叉树吧·····
/**
* 二叉树测试二叉树顺序存储在treeLine中,递归前序创建二叉树。另外还有能
* 够前序、中序、后序、按层遍历二叉树的方法以及一个返回遍历结果asString的
* 方法。
*/
public class BitTree {
public static Node2 root;
public static String asString;
//事先存入的数组,符号#表示二叉树结束。
public static final char[] treeLine = {'a','b','c','d','e','f','g',' ',' ','j',' ',' ','i','#'};
//用于标志二叉树节点在数组中的存储位置,以便在创建二叉树时能够找到节点对应的数据。
static int index;
//构造函数
public BitTree() {
System.out.print("测试二叉树的顺序表示为:");
System.out.println(treeLine);
this.index = 0;
root = this.setup(root);
}
//创建二叉树的递归程序
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;
}
//前序遍历二叉树的循环算法,每到一个结点先输出,再压栈,然后访问它的左子树,
//出栈,访问其右子树,然后该次循环结束。
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;
}
}
/**
* 二叉树所使用的节点类。包括一个值域两个链域
*/
public class Node2 {
char ch;
Node2 left;
Node2 right;
//构造函数
public Node2(char c) {
this.ch = c;
this.left = null;
this.right = null;
}
//设置节点的值
public void setChar(char c) {
this.ch = c;
}
//返回节点的值
public char getChar() {
return ch;
}
//设置节点的左孩子
public void setLeft(Node2 left) {
this.left = left;
}
//设置节点的右孩子
public void setRight (Node2 right) {
this.right = right;
}
//如果是叶节点返回true
public boolean isLeaf() {
if ((this.left == null) (this.right == null)) return true;
return false;
}
}
一个作业题,里面有你要的东西。
主函数自己写吧。当然其它地方也有要改的。