java 数组练习

4.1 练习
1、写一个类在其中定义一些方法实现数组元素的遍历、排序、插入、删除、查找,并写一个main方法进行测试。
2、定义Java方法,实现将二维数组元素的串行化处理,其输入参数为二维整型数组,返回值为对该二维数组串行化处理所得的一维整型数组。方法格式如下:
public int[]serialize(int[][] source){

}
以如下数组为例:
int[][] a = {{1,2},{3,4,0,9},{5,6,7}};

其串行化所得的一维结果数组元素依次为:1, 2, 3, 4, 0, 9, 5, 6, 7,要求考虑到非规则矩阵形式的多维数组结构。

第1个回答  2015-06-12
第1题 遍历就是用 for循环呢 这里略了
public static void main(String[] args) {
String[] des = {"1","2", "3", "4", "0", "9", "5", "5", "6", "7"};

System.out.println(Arrays.toString(insertEle(des, "yu", 5)));
}

//---------------查找
public String findEle(String[] sourc, String des){
List<Integer> seles = new ArrayList<Integer>();
String showMes ="";
if (des != null){
for (int i = 0; i < sourc.length; i++) {
if(des.equals(sourc[i])){
seles.add(i);
}
}
}else{
showMes = "请给定 目标元素。";
return showMes;
}
if (seles.size() == 0){
showMes = "没有找到 指定元素";
}else{
showMes = "找到 指定元素的位置: 是在 ";
for (Integer index : seles) {
showMes = showMes + (index + 1)+ "、 ";
}

}

return showMes;
}

/**
* ---------------- 删除指定元素
*/
public String[] DelEle(String[] sour, String des){
if (sour == null){
return null;
}else if( des == null) {
return sour;
}
List<Integer> seles = new ArrayList<Integer>();

for (int i = 0; i < sour.length; i++) {
if(des.equals(sour[i])){
seles.add(i);
}
}
if (seles.size() != 0){
String[] backEnd = new String[(sour.length - seles.size())];
int count = 0;
for (int i = 0; i < sour.length; i++) {
if (des.equals(sour[i])){
continue;
}else{
backEnd[count] = sour[i];
count++;
}
}
return backEnd;
}else {
return sour;
}

}

// ------------------插入
public static String[] insertEle(String[] sour, String des, int index){
if (sour == null) {
return null;
}else if(des == null || index < 0) {
return sour;
}
String[] desArr = new String[sour.length + 1];
int count = 0;
for (int i = 0; i < sour.length; i++) {
if ((i+1) == index){
desArr[count] = des;
count++;
}
desArr[count] = sour[i];
count++;
}

return desArr;
}

第2题

public static int[] serialize(int[][] source){
List<Integer> ends= new ArrayList<Integer>();
int count=0;
for (int i = 0; i < source.length; i++) {
int[] yu = source[i];
for (int j=0; j < yu.length; j++) {
ends.add(yu[j]);
count++;
}
}

Object[] end = ends.toArray();
int[] des = new int[end.length];
for (int i = 0; i < end.length; i++) {
des[i] = Integer.valueOf(end[i].toString());
}
return des;
}

强调: 第2题 包括 第1题的 查找、删除方法 都额外用到了 “集合”的API ,因为题中的不确定因素(数组的长度等)本回答被提问者和网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网