两个数组,一个数组是拍好序的,一个是未排序的,未排序的数组要比拍好序的数组大,怎么排序?

例如:排好序的 String[ ] name={"建设银行","交通","农业","广大","浦发"},
未排序:String[ ] name1={"徽商银行","交通","上海银行","农业","农商银行","光大","浦发",“建设银行”,。。。。。。},

6个回答

排好序的 String[ ] name={"建设银行","交通","农业","广大","浦发"}, 数组里面的元素全是字符串,你这个数组是怎么排序的??是有什么排序规则吗??

suyanyan2877
suyanyan2877 未排序的中,如果有这个银行就按照这个顺序,没有的就放到后面,总之这几个要在前面
2 年多之前 回复
suyanyan2877
suyanyan2877 这个是指定好的,意思是,这几个要在前面,没有排序的要按照这个来排序
2 年多之前 回复

for嵌套放到两个大的数组中,然后去空,转成list,然后list.addAll(),虽然可以实现,感觉很low

你这个问题太模糊了,已排序的规则是什么,未排序的数组在排序时候是否收到已排序数组影响?

clm2017
diem2019 先利用arrayToList方法将array转换为List,再使用Collection.sort(list)进行排序,此刻list是有顺序的,循环放到数组就可以了。
2 年多之前 回复
suyanyan2877
suyanyan2877 已经排序的意思是,产品指定这些银行要在前面,指定好的顺序手动写的,就按这个顺序来,
2 年多之前 回复

先利用arrayToList方法将array转换为List,再使用Collection.sort(list)进行排序,此刻list是有顺序的,循环放到数组就可以了

投机思维是删掉name1中的那五个银行名称,然后合并name和name1。不过在Java中操作起来比较繁琐。所以这样写

String[] name2 = new String[name1.length];
定义一个数组name2,与name1等长
遍历name1,在name中的那五个按照name的索引存到name2中。不在name中的那三个放到name2中那五个的后面,索引是name.length + 0; +1; +2;
for (int i = 0; i < name1.length; i++) {
b = true;
for (int j = 0; j < name.length; j++) {
if (name1[i].equals(name[j])) {
name2[j] = name1[i];
b = false;
break;
}
}
if (b) {
name2[name.length + (k++)] = name1[i];
}
}

抽出来放到另外一个数组里面

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问