java 数组练习

4.1练习1、写一个类在其中定义一些方法实现数组元素的遍历、排序、插入、删除、查找,并写一个main方法进行测试。2、定义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,要求考虑到非规则矩阵形式的多维数组结构。
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
yuzehello23
2015-06-12 · 超过11用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:26.8万
展开全部
第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 ,因为题中的不确定因素(数组的长度等)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式