Java,对两条arraylist(String)排序并插入新元素

将 map(string,string) 导入到两个arraylist, listA和listB
然后对listA和listB排序
插入新的元素(string,string)到list A 和listB中

例如 map(string,string) =((b,CC), (a,BB), (d,AA) )
listA= (b,a,d)
listB=(BB,AA,DD)
sort.listA=(a,b,d)//到这步我都会
如果单纯的sort.listB 就变变成(AA,BB,CC)
问题是怎么根据listA里面的元素去对应排序listB的元素
但需要的是两个list是根据listA的排序
即结果为 listA(a,b,d), listB (BB,CC,AA)

然后往list中添加新的元素 (c,DD)
返回结果为 listA = (a,b,c,d) listB=(BB,CC,DD,AA)

我也知道用map去储存数据然后操作很简单,但是要求是用arraylist或者linkedlist或者array完成

感谢所有的意见和建议!

是这样的,我觉得你可以换个思路,我们首先只取出b,a,d 构成链表listA= (b,a,d),然后对listA进行排序,listA排序完成后,顺序取出listA中的值为key,取出map中的数据放到listB中,这样顺序肯定是一致的,也就变相的完成排序工作了

代码就不写了,排序的话简单来说就是一个map遍历的问题,
插入的话可以这样,因为第一个表和第二个表已经对应上,那么先插入到listA中,然后获取到插入的位置Index,根据位置插入到B中,

Arralist和linkedlist的方法接口差不多,建议你下载一个中文的JDK API资料,里面很详细
linkedlist:
public void add(int index,
E element)

在此列表中指定的位置插入指定的元素。移动当前在该位置处的元素(如果有),所有后续元素都向右移(在其索引中添加 1)。

Arralist:
public void add(int index,
E element)

将指定的元素插入此列表中的指定位置。向右移动当前位于该位置的元素(如果有)以及所有后续元素(将其索引加 1)。
温馨提示:答案为网友推荐,仅供参考
相似回答