for数组嵌套循环问题

时间:2022-09-08 11:34:20
有以下代码,我想把1与ab,2与cd等..每组成一个集合存入beans,也就是secondArray每配对两个元素与FirstArray一个元素组合,secondArray向后递减,下面代码是将每个firstArray元素与所有secondArray元素配对,想改1配对ab,2配对cd....5配对ij,不知如何修改?
            
               List<FirstBean> beans = new ArrayList<FirstBean>();

String[] firstArray =  new String[]{"1","2","3","4","5"};
String[] secondArray =  new String[]{"a","b","c","d","e","f","g","h","i","j"};

 for(int i=0; i<firstArray.length; i++){
 
 FirstBean firstBean = new FirstBean(); 
 firstBean.setValue1(value1);
 firstBean.setValue2(value2);
         
 Set<SecondBean> beanSet = new HashSet<SecondBean>();
 
 for(int j=0; i<secondArray.length; j++){
 
    SecondBean secondBean = new SecondBean();
    secondBean.setvalue1(value1);
    secondBean.setvalue2(secondArray[j]);//此处只是将所有secondArray元素与每个firstArray元素配对
               
    beanSet.add(secondBean);
 
 }
 firstBean.setSecondBean(beanSet);        
        
 beans.add(firstBean);     
 }

7 个解决方案

#1


setvalue(secondArray[0] + secondArray[1])不就是配对了么?

secondArray向后递减
什么意思?

#2


如果只是你说的firstArray和secondArray,没必要用嵌套循环了。而且好像嵌套不行!!!
比如,直接
for (int i=0; i<5; i++) {
  String value1 = firstArray[i] + secondArray[i*2] + secondArray[i*2+1];
}
不知道你要干什么,应该是这个思路吧

#3


先将secondArray匹配好,再与firstArray匹配。
String[] temp=new String[secondArray.length/2];
for(int i=0;i<secondArray.length;i=i+2)
{
 ......................
}

#4


向后递减其实就是for(int i=0; i <firstArray.length; i++)循环一次后,1与a,b配对存入beans里,第二次循环就是2与c,d配对存入了,这段代码其实是实现级联保存的,value1为FirstBean与SecondBean对应表的主键,FirstBean与SecondBean是一对多关系,刚才可能说的不是很清楚,不好意思, 还有goodmrning能不能贴出完整代码来啊?

#5


数据库关系其实就表A主键为1,有一条记录,表B主键为1,但表B有两条记录1,a和1,b,上面代码就是想实现这个目的插入数据的

#6


还是不是很明白,正在怀疑自己的理解能力....
-_-~~~

你直接说:把哪些数据,用哪个方法,如何配对,并存入,我想大家就明白了.
呵呵~~~

#7


搞定了,在外面加多个变量,内循环两次就可以了
 List <FirstBean> beans = new ArrayList <FirstBean>(); 

String[] firstArray =  new String[]{"1","2","3","4","5"}; 
String[] secondArray =  new String[]{"a","b","c","d","e","f","g","h","i","j"}; 
int index = 0;
for(int i=0; i <firstArray.length; i++){ 

FirstBean firstBean = new FirstBean(); 
firstBean.setValue1(value1); 
firstBean.setValue2(value2); 
        
Set <SecondBean> beanSet = new HashSet <SecondBean>(); 

for(int j=0; i <2; j++){ 

    SecondBean secondBean = new SecondBean(); 
    secondBean.setvalue1(value1); 
    secondBean.setvalue2(secondArray[index]);
              
    beanSet.add(secondBean); 
   index += 1;

firstBean.setSecondBean(beanSet);        
        
beans.add(firstBean);    
}

#1


setvalue(secondArray[0] + secondArray[1])不就是配对了么?

secondArray向后递减
什么意思?

#2


如果只是你说的firstArray和secondArray,没必要用嵌套循环了。而且好像嵌套不行!!!
比如,直接
for (int i=0; i<5; i++) {
  String value1 = firstArray[i] + secondArray[i*2] + secondArray[i*2+1];
}
不知道你要干什么,应该是这个思路吧

#3


先将secondArray匹配好,再与firstArray匹配。
String[] temp=new String[secondArray.length/2];
for(int i=0;i<secondArray.length;i=i+2)
{
 ......................
}

#4


向后递减其实就是for(int i=0; i <firstArray.length; i++)循环一次后,1与a,b配对存入beans里,第二次循环就是2与c,d配对存入了,这段代码其实是实现级联保存的,value1为FirstBean与SecondBean对应表的主键,FirstBean与SecondBean是一对多关系,刚才可能说的不是很清楚,不好意思, 还有goodmrning能不能贴出完整代码来啊?

#5


数据库关系其实就表A主键为1,有一条记录,表B主键为1,但表B有两条记录1,a和1,b,上面代码就是想实现这个目的插入数据的

#6


还是不是很明白,正在怀疑自己的理解能力....
-_-~~~

你直接说:把哪些数据,用哪个方法,如何配对,并存入,我想大家就明白了.
呵呵~~~

#7


搞定了,在外面加多个变量,内循环两次就可以了
 List <FirstBean> beans = new ArrayList <FirstBean>(); 

String[] firstArray =  new String[]{"1","2","3","4","5"}; 
String[] secondArray =  new String[]{"a","b","c","d","e","f","g","h","i","j"}; 
int index = 0;
for(int i=0; i <firstArray.length; i++){ 

FirstBean firstBean = new FirstBean(); 
firstBean.setValue1(value1); 
firstBean.setValue2(value2); 
        
Set <SecondBean> beanSet = new HashSet <SecondBean>(); 

for(int j=0; i <2; j++){ 

    SecondBean secondBean = new SecondBean(); 
    secondBean.setvalue1(value1); 
    secondBean.setvalue2(secondArray[index]);
              
    beanSet.add(secondBean); 
   index += 1;

firstBean.setSecondBean(beanSet);        
        
beans.add(firstBean);    
}