本帖最后由 Sword 于 2013-8-9 08:59 编辑
昨天上课讲到List集合,今天趁休息做了些练习,有一道题觉得还不错,在这里跟大家交流一下。
题目是将两个有序排列的整数集合合并成一个集合,要求合并后的集合也是一个有序的集合。以下是我写的代码- import java.util.*;
- class ListSort
- {
- public static void main(String[] args)
- {
- List<Integer> list1 = new ArrayList<Integer>();
- List<Integer> list2 = new ArrayList<Integer>();
-
- list1.add(1);
- list1.add(3);
- list1.add(7);
- list1.add(8);
- list1.add(9);
- list1.add(23);
- list1.add(67);
- list2.add(2);
- list2.add(4);
- list2.add(9);
- list2.add(23);
- list2.add(34);
- list2.add(65);
- list2.add(90);
- List<Integer> list3 = addList(list1, list2);
- //判断新的集合是否为空,或大小是否为0,如果是,则返回程序不用打印
- //如果不是,则遍历并打印出来
- if(list3==null || list3.size()==0){
- return;
- }
- for(int i=0;i<list3.size();i++){
- System.out.print(list3.get(i)+" ");
- }
- System.out.println();
- }
- //定义一个方法完成将两个集合中的元素合并的功能
- public static List<Integer> addList(List<Integer> list1, List<Integer> list2){
- //先判断这两个集合是否为空或大小是否为0
- //如果其中一个集合为空或大小为0则直接返回另一个集合
- if(list1 == null || list1.size()==0){
- return list2;
- } else if(list2 == null || list2.size()==0){
- return list1;
- }
- //定义一个新的集合,将从原来集合中取出的元素存储进去
- List<Integer> result = new ArrayList<Integer>();
- int i=0;// 定义集合1的下标
- int j=0;// 定义集合2的下标
- //将集合1与集合2中的元素逐一取出相比较
- while(i<list1.size() && j< list2.size()){<span style="line-height: 1.5;"> </span>
复制代码 本来想发表在日志里的,但是不知道为什么提示没有权限发表日志??? |