每日一题-Day15-二维数组查找重复行
题目
在二维数组中查找重复的行,并输入对应的行索引
解决思路如下:
使用哈希表来放置二维数组,key为行索引,value为行索引对应的一维数组
import java.util.HashMap;
import java.util.Map;
public class Test10 {
public static void main(String[] args) {
//创建数组
String [][] s={
{"abc"," "},
{""},
{"a","b","C","1"},
{"a","b","C","1"},
{"a","1","4","r"}};
//将数组放进一个哈希表中
Map<Integer,String[]> map = new HashMap<>();
int index=0; //行索引
for (String[] t:s){
map.put(index,t);
index++;
}
for(int i=0;i<s.length;i++){ //使用冒泡排序比较每行的内容是否相同
for(int j=i+1;j<s.length;j++){
if(map.get(i).length==map.get(j).length){ //判断两个一位数组长度是否相同
int count=0;
for(int k=0;k<map.get(i).length;k++){ //判断数组中的每一个字符是否相同
if(map.get(i)[k]!=map.get(j)[k]) break;
else count++;
}
if(count==map.get(i).length) System.out.println(i+"和"+j+"相等"); //如果每个字符都相等,且长度相等,则两行重复
}
}
}
}
}
题目来源:笔试题