面试中有一道题要求合并两个ArrayList链表并排序

该问题很简单,但是却很有深意,上次见识了List的强大功能之后,我思考问题开始往java API上考虑,毕竟并不是所有的问题都需要绞尽脑汁去想算法。

为此个人实现如下:

/**合并数据,并按照从小到大排序*/
public class SortDemo {
	public static void main(String[] args) {
		List<Object> startList=new ArrayList<Object>();
		List<Object> endList=new ArrayList<Object>();
		startList.add(1);
		startList.add(7);
		startList.add(3);
		startList.add(5);
		startList.add(9);
		//------------------
		endList.add(2);
		endList.add(3);
		endList.add(7);
		endList.add(3);
		endList.add(9);
		Object[] countList=compare(startList, endList);
		for(int i=0;i<countList.length;i++){
			System.out.print(countList[i]);
		}

	}
	public static Object[] compare(List<Object> startList,List<Object> endList){
		startList.addAll(endList);
		Object[] objects=startList.toArray();
		Arrays.sort(objects);
		return objects;
	}
如果放在以
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ArrayList是一个可以动态添加元素的集合类,可以存放各种类型的对象。假设我们已经创建了一个ArrayList并将中的对象存放其中。 要按照年龄排序,我们可以使用冒泡排序算法。冒泡排序的基本思路是,每一轮都将相邻的两个元素进行比较,如果它们的顺序不正确,则交换它们的位置,直到所有的元素都被比较过一次。 具体步骤如下: 1. 遍历ArrayList中的所有元素,进行n-1次循环。n为ArrayList的大小。 2. 在每一次循环中,比较相邻的两个元素的年龄。如果当前元素的年龄大于后一个元素的年龄,则交换它们的位置。 3. 继续进行下一轮的比较,直到所有的元素都被比较过一次。 4. 当所有的轮次都完成后,ArrayList中的元素就按照年龄从小到大的顺序排序完成。 示例代码如下: ```java ArrayList<对象类型> list = new ArrayList<>(); // 假设已经将对象存放到list中 int n = list.size(); for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1 - i; j++) { // 获取当前元素和后一个元素 对象类型 current = list.get(j); 对象类型 next = list.get(j + 1); // 比较年龄 if (current.get年龄() > next.get年龄()) { // 交换位置 list.set(j, next); list.set(j + 1, current); } } } ``` 以上代码中,`对象类型`表示中对象的类型,`get年龄()`表示获取对象的年龄的方法。在实际使用中,需要将代码修改成符合具体对象类型及其方法的形式。 经过以上步骤,我们就可以利用冒泡排序ArrayList中的对象按照年龄进行排序排序后,list中的对象将按照年龄从小到大的顺序排列。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值