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,要求考虑到非规则矩阵形式的多维数组结构。 展开
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(财富值+成长值)
1个回答
展开全部
第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 ,因为题中的不确定因素(数组的长度等)
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 ,因为题中的不确定因素(数组的长度等)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询