码迷,mamicode.com
首页 > 其他好文 > 详细

矩阵转换

时间:2015-07-30 02:06:15      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

<PRE class="brush: java; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">package com.Pong;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.logging.Logger; 

public class ConvertMatrix {

    /**
     * @param args
     */
/*
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a[][]=new int[19][19];
        for(int k=0;k&lt;=9;k++){
        for (int i = k; i &lt; a.length-k; i++) {
            for (int j = k; j &lt; a.length-k; j++) {
                a[i][j]=9-k;
            }
        }
        }

        for (int i = 0; i &lt; a.length; i++) {
            for (int j = 0; j &lt; a.length; j++) {
                System.out.print(a[i][j]+" ");
            }
            System.out.println();
        }

    }
*/

   private static Logger log = Logger.getLogger(ConvertMatrix.class.getName());

    /**
     * 将结果集二维集合数据转换为XML
     *
     * @param columns 列名集合
     * @param result  二维结果集
     * @return 返回格式良好的XML字符串
     */
    public static String listToXML(ArrayList&lt;String&gt; columns, ArrayList&lt;ArrayList&gt; result) {
        StringBuffer sb = new StringBuffer();
        sb.append("&lt;?xml version=\"1.0\"  encoding=\"GB2312\"?&gt;\n")
                .append("&lt;?xml-stylesheet type=\"text/xsl\" href=\"")
                .append("\"?&gt;\n\n");
        sb.append("&lt;rptcontent&gt;\n");
        for (ArrayList al : result) {
            sb.append("\t&lt;row&gt;");
            for (Iterator it_al = al.iterator(), it_c = columns.iterator(); it_al.hasNext() &amp;&amp; it_c.hasNext();) {
                String tmp = it_c.next().toString();
                sb.append("\n\t\t&lt;").append(tmp).append("&gt;").append(it_al.next()).append("&lt;").append(tmp).append("/&gt;");
            }
            sb.append("\n\t&lt;/row&gt;\n");
        }
        sb.append("&lt;/rptcontent&gt;");
        return sb.toString();
    }

    /**
     * 将结果集二维数组数据转换为XML
     *
     * @param columns 列名数组
     * @param result  二维结果集数组
     * @return 返回格式良好的XML字符串
     */
    public static String arrayToXML(Object[] columns, Object[][] result) {
        StringBuffer sb = new StringBuffer();
        sb.append("&lt;?xml version=\"1.0\"  encoding=\"GB2312\"?&gt;\n")
                .append("&lt;?xml-stylesheet type=\"text/xsl\" href=\"")
                .append("\"?&gt;\n\n");
        sb.append("&lt;rptcontent&gt;\n");
        for (Object[] al : result) {
            sb.append("\t&lt;row&gt;");
            for (int i = 0; i &lt; columns.length - 1; i++) {
                sb.append("\n\t\t&lt;").append(columns[i].toString()).append("&gt;").append(al[i].toString()).append("&lt;").append(columns[i].toString()).append("/&gt;");
            }
            sb.append("\n\t&lt;/row&gt;\n");
        }
        sb.append("&lt;/rptcontent&gt;");
        return sb.toString();
    }

    /**
     * 二维集合转为二维数组
     *
     * @param result 二维集合
     * @return 二维数组
     */
    public static Object[][] listToArray(ArrayList&lt;ArrayList&gt; result) {
        int size = result.size();
        Object obj[][] = new Object[size][];
        if (size == 0) {
            log.info("集合为空,转换数组失败,将返回null!");
            return null;
        }
        for (int i = 0; i &lt; size; i++) {
            obj[i] = result.get(i).toArray();
        }
        return obj;
    }

    /**
     * 将二维数组转为二维ArrayList
     *
     * @param arr 二维数组
     * @return 二维ArrayList
     */
    public static ArrayList&lt;ArrayList&gt; arrayToList(Object[][] arr) {
        ArrayList&lt;ArrayList&gt; all = new ArrayList&lt;ArrayList&gt;();
        for (int i = 0; i &lt; arr.length; i++) {
            all.add(arrayToList(arr[i]));
        }
        return all;
    }

    /**
     * 将一维数组转为List对象
     *
     * @param ar 一维数组
     * @return List对象
     */
    public static ArrayList arrayToList(Object[] ar) {
        ArrayList al = new ArrayList();
        for (Object obj : ar) {
            al.add(obj);
        }
        return al;
    }

    /**
     * 输出二维集合到控制台
     *
     * @param all 二维集合
     */
    public static void listOutputConsole(ArrayList&lt;ArrayList&gt; all) {
        System.out.println("-------输出二维集合到控制台-------");
        for (ArrayList al : all) {
            for (Object a : al) {
                System.out.print(a.toString() + "\t");
            }
            System.out.println();
        }
        System.out.println("\n------------------------");
    }


    /**
     * 将二维数组输出到控制台
     *
     * @param arr 二维数组
     */
    public static void arrrayOutputConsole(Object[][] arr) {
        System.out.println("-------输出二维数组到控制台-------");
        for (Object[] ar : arr) {
            for (Object a : ar) {
                System.out.print(a.toString() + "\t");
            }
            System.out.println();
        }
        System.out.println("\n------------------------");
    }

    /**
     * 将二维数组转为格式美观的字符串
     *
     * @param arr 二维数组
     */
    public static String arrayToString(Object[][] arr) {
        StringBuilder sb = new StringBuilder();
        for (Object[] ar : arr) {
            for (Object a : ar) {
                sb.append(a.toString()).append("\t");
            }
            sb.append("\n");
        }
        return sb.toString();
    }

    /**
     * 将二维集合转为格式美观的字符串
     *
     * @param all 二维集合
     */
    public static String listToString(ArrayList&lt;ArrayList&gt; all) {
        StringBuilder sb = new StringBuilder();
        for (ArrayList al : all) {
            for (Object a : al) {
                sb.append(a.toString()).append("\t");
            }
            sb.append("\n");
        }
        return sb.toString();
    }

    public static void main(String args[]) {
        ArrayList&lt;ArrayList&gt; all = new ArrayList&lt;ArrayList&gt;();
        ArrayList al0 = new ArrayList();
        ArrayList al1 = new ArrayList();
        ArrayList al2 = new ArrayList();

        al0.add("01");
        al0.add("02");
        al1.add("11");
        al1.add("12");
        al2.add("21");
        al2.add("22");

        all.add(al0);
        all.add(al1);
        all.add(al2);

        listOutputConsole(all);

        StringBuffer sb = new StringBuffer();
        ArrayList c = new ArrayList();
        c.add("c1");
        c.add("c2");
        c.add("c3");


        Object[][] obj = listToArray(all);
        arrrayOutputConsole(obj);

        ArrayList&lt;ArrayList&gt; allx = arrayToList(obj);

        String x = arrayToXML(c.toArray(), obj);
        System.out.println(x);
    } 

}
</PRE>

矩阵转换

标签:

原文地址:http://www.cnblogs.com/Kconnie/p/4687949.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!