list-求循环函数的写法········

问题描述

求循环函数的写法········


这样的一个list 我要拼接成的结果是String:
100,300,500
200,300,500
100,400,500
200,400,500

dtoList 是动态的,结果要排序,去重

解决方案

public class Test {
public static void main(String[] args) {
// 图片说明
// 这样的一个list 我要拼接成的结果是String:
// 100,300,500
// 200,300,500
// 100,400,500
// 200,400,500
// dtoList 是动态的,结果要排序,去重
List list = new ArrayList();
list.add(new ValideKeyDTO(100, "省份"));
list.add(new ValideKeyDTO(200, "省份"));
list.add(new ValideKeyDTO(500, "号码"));
list.add(new ValideKeyDTO(300, "业务"));
list.add(new ValideKeyDTO(400, "业务"));
//
Map> map = new HashMap>();
List list2;
for(ValideKeyDTO v : list){
list2 = map.get(v.getType());
if(null == list2){
list2 = new ArrayList();
map.put(v.getType(), list2);
}
list2.add(v);
}
//
List[] values = map.values().toArray(new List[0]);
StringBuilder str = new StringBuilder();
doPrint(values, 0, str);

}
private static void doPrint(List<ValideKeyDTO>[] values, int i, StringBuilder str) {
    for(ValideKeyDTO v : values[i]){
        str.append(v.id);
        if(values.length>i+1){
            str.append(", ");
            doPrint(values, i+1, str);
            //
            str.delete(str.lastIndexOf(v.id+""), str.length());
        }else{
            System.out.println(str.toString());
            int lastIndexOf = str.lastIndexOf(", ");
            if(lastIndexOf>0){
                str.delete(lastIndexOf+2, str.length());
            }else{
                str.delete(0, str.length());
            }
        }
    }
}
static class ValideKeyDTO{
    long id;
    String type;

    public ValideKeyDTO(long id, String type) {
        this.id = id;
        this.type = type;
    }
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
}

}

解决方案二:

ValideKeyDTO dto[]

for (i=1;i<=5;i++)
{
dto[i] = new ValideKeyDTO();
dto[i].setType("业务");
dto[i].setId(i*100);
dtoList.add(dto[i]);
}

解决方案三:

private static void doPrint(List[] values, int i, StringBuilder str) {
for(ValideKeyDTO v : values[i]){//取出List后,可以执行对list做任意排序
str.append(v.id);
if(values.length>i+1){
str.append(", ");
doPrint(values, i+1, str);
//
str.delete(str.lastIndexOf(v.id+""), str.length());
}else{
System.out.println(str.toString());
int lastIndexOf = str.lastIndexOf(", ");
if(lastIndexOf>0){
str.delete(lastIndexOf+2, str.length());
}else{
str.delete(0, str.length());
}
}
}
}

解决方案四:

建個數組保存。

ValideKeyDTO dto[]

for (i=1;i<=5;i++)
{
dto[i] = new ValideKeyDTO();
dto[i].setType("业务");
dto[i].setId(i*100);
dtoList.add(dto[i]);
}

时间: 2024-11-03 21:50:34

list-求循环函数的写法········的相关文章

求个泛型排序写法,如下。

问题描述 求个泛型排序写法,如下. public static List<T> SortAsc<T>(List<T> source, string sortby) { List<T> tlist = source.OrderBy(x => x.GetType().GetProperty(sortby)).ToList<T>(); return tlist; } 这个方法我写的,测试根本没排序,求大神指点迷津 解决方案 List<T&g

Excel2013中表格求差函数公式怎么使用

  Excel2013中表格求差函数公式怎么使用         打开Excel表格,将被减数放在A列,将对应的减数放在B列. 单击第一排,第三个单元格,也就是C1,在C1中输入"=A1-B1".注意一定不要忘了输等于符号.这个公式表达的含义就是第一个单元格中的数字减去第二个单元格中的数字等于第三个单元格的数字. 最后,大家用鼠标选中C1单元格,将光标放在C1单元格的右下角,当鼠标变成一个黑色十字架的时候,按住鼠标左键不放,往下拖.这样放开鼠标你就可以看见所有的求差结果在C列中显示出来

js-for循环的条件写法问题

问题描述 for循环的条件写法问题 function editCSSRule(selector,styles,url,media){ var styleSheets = (typeof url == 'array' ? url : getStyleSheets(url,media)); for(var i=0,len=styleSheets.length;i<len;i++){ //for(var i=0;i<styleSheets.length;i++){ var rules = style

c++求循环队列的元素个数

问题描述 c++求循环队列的元素个数 int getSize( )const {return (rear-front+maxsize)%maxsize;} 函数体返回的为什么不是rear-front?两者有啥区别吗? 解决方案 如果rear<front结果是rear-front+maxsize 如果rear>front结果是rear-front 为了用一个表达式同时表达两者,用(rear-front+maxsize)%maxsize 假设maxsize=10 rear=1 front=9,那么

c++下面的两种函数的写法有什么区别?第二种写法为什么不对?应怎么改才对?

问题描述 c++下面的两种函数的写法有什么区别?第二种写法为什么不对?应怎么改才对? 3C 方法一:class R{ public: R(int r1int r2):r1(r1)r2(r2){} void print(); void print()const ;private: int r1r2;};void R::print(){ cout<<r1<<"":""<<r2<<endl;}void R::print()

mfc-一个MFC求幂指数函数和求导结合的问题

问题描述 一个MFC求幂指数函数和求导结合的问题 如果C++ 6.0 MFC已经求出了幂指数函数,请问如何进一步求指定浮点数的导数 解决方案 求导和求指数函数是两回事,参考:http://wenku.baidu.com/link?url=IA5Py3jd-tpw-ZMuvtSrW8vlhKr32BTf7DeGhsYUNuMnqWhMw5RPj14r5bcng7bz0sMXuaWQTCvxAeE8t765OsGeuFuB5WhH9Nhyyw9JU3K

求一个优化的写法

问题描述 ///<summary>///编辑客户信息///</summary>///<paramname="model"></param>///<returns></returns>publicintEditCustomer(CustomerModelmodel){intres=CustomerDAL.Update(model);returnres;}///<summary>///编辑客户信息[前台]/

jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)_jquery

我选择了jQuery,最主要是它的思想"write less,do more",因为我是一个挑剔的人,以前写过的代码,会时不时翻出来,看看有没有可以精简,优化的地方.一来是对不断学习的推动,二来可以将新的思想,技术应用到里面去. 对于jQuery插件的写法,以前就有介绍过,网上也有很多例子. 这里简要地进行些写法,主要是简写的说明,见下列代码: <script type="text/javascript" src="jquery-1.4.2.js&q

jQuery扩展插件和拓展函数的写法(匿名函数使用的典型例子)

      这些年,javascript火起来了,主要归功于AJAX的推广应用,Web2.0的发展...于是,出现了很多的javascript框架.我选择了jQuery,最主要是它的思想"write less,do more",因为我是一个挑剔的人,以前写过的代码,会时不时翻出来,看看有没有可以精简,优化的地方.一来是对不断学习的推动,二来可以将新的思想,技术应用到里面去.        对于jQuery插件的写法,以前就有介绍过,网上也有很多例子. 这里简要地进行些写法,主要是简写的