2 suyanyan2877 suyanyan2877 于 2017.09.15 15:55 提问

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

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

6个回答

huang931027
huang931027   2017.09.15 15:59

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

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

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

cashT
cashT   2017.09.15 16:01

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

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

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

luoyuchou
luoyuchou   2017.09.15 17:26

投机思维是删掉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];
}
}

github_38117599
github_38117599   2017.09.16 19:44

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

Csdn user default icon
上传中...
上传图片
插入图片