java8写一段将inList的值赋给outList的共通方法
时间: 2024-05-09 20:18:44 浏览: 206
以下是Java8中将inList的值赋给outList的共通方法的示例代码:
```java
public static <T> void copyList(List<T> inList, List<T> outList) {
inList.stream().forEach(outList::add);
}
```
使用Java8的stream API,我们可以轻松地将inList中的元素添加到outList中。在这个方法中,我们使用了一个静态泛型方法,允许我们复制任何类型的List。然后我们使用stream()方法将inList转换为一个Stream对象,接着我们通过forEach()方法将每个元素添加到outList中。最后,我们可以在需要的任何地方调用这个方法来复制List。
相关问题
// 服装出库 if (ac.equals("kcout")) { String pid = request.getParameter("pid"); String num = request.getParameter("num"); String type = request.getParameter("type"); String reason = request.getParameter("reason"); String savetime = Info.getDateStr(); int znum = 0; int innum = 0; int outnum = 0; ArrayList<HashMap> inlist = (ArrayList<HashMap>) dao .select("select * from kcrecord where type='in' and pid='" + pid + "' "); ArrayList<HashMap> outlist = (ArrayList<HashMap>) dao .select("select * from kcrecord where type='out' and pid='" + pid + "' "); if (inlist.size() > 0) { for (HashMap inmap : inlist) { innum += Integer.parseInt(inmap.get("num").toString());// 总入库量 } } if (outlist.size() > 0) { for (HashMap outmap : outlist) { outnum += Integer.parseInt(outmap.get("num").toString());// 总出库量 } } znum = innum - outnum;// 库存量 if (Integer.parseInt(num) > znum) { request.setAttribute("no", ""); go("/admin/kcout.jsp", request, response); } else { dao.commOper("insert into kcrecord (pid,num,type,reason,savetime) values" + " ('" + pid + "','" + Integer.parseInt(num) + "','" + type + "','" + reason + "','" + savetime + "') "); request.setAttribute("suc", ""); go("/admin/kcout.jsp", request, response); } }
这段代码实现了一个服装出库的功能。具体来说,如果用户提交了一个名为"kcout"的表单,程序会从请求参数中获取"pid"、"num"、"type"和"reason"的值。然后,它会查询数据库中"pid"对应的"kcrecord"表中的所有入库和出库记录,并计算出当前库存量。如果出库数量大于当前库存量,它会将一个名为"no"的属性添加到请求中,并将请求转发到"/admin/kcout.jsp"页面。否则,它会向"kcrecord"表中插入一条出库记录,并将一个名为"suc"的属性添加到请求中,并将请求转发到"/admin/kcout.jsp"页面。
具体来说,它首先使用一个select语句查询"kcrecord"表中所有"pid"等于请求参数中的"pid",并且"类型"等于"入库"的记录,然后使用一个for循环遍历查询结果,计算出所有入库数量的总和。接着,它使用另外一个select语句查询"kcrecord"表中所有"pid"等于请求参数中的"pid",并且"类型"等于"出库"的记录,然后使用一个for循环遍历查询结果,计算出所有出库数量的总和。最后,它将总入库数量减去总出库数量得到当前库存量。如果出库数量大于当前库存量,它将跳转到错误页面,否则,它将向"kcrecord"表中插入一条新的出库记录。
/*给定的程序中,fun的功能是:在利用两个带头结点的单向链表依次生成一个同向单链表 如:第一个链表为:1、3、5、7 第二个链表为:2、4、6、8、9 链表的结果为: Head->1->2->3->4->5->6->7->8->9->End */ #include <stdio.h> #include <stdlib.h> #define N 10 typedef struct list { int data; struct list *next; } SLIST; SLIST *creatlist(int *,int);//函数申明 void outlist(SLIST *); SLIST *fun( SLIST *h1,SLIST *h2); SLIST *fun( SLIST *h1,SLIST *h2) { } int main() { SLIST *h1,*h2,*h3; int a[N]={1,3,5,7,9},b[N]={2,4,6,8,10,11}; h1=creatlist(a,5); h2=creatlist(b,6); outlist(h1); outlist(h2); h3=fun(h1,h2); outlist(h3); } SLIST *creatlist(int *a,int n) { SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST)); h->next=NULL; for(i=0; i<n; i++) { q=(SLIST *)malloc(sizeof(SLIST)); q->data=a[i]; q->next=NULL; p->next=q; p=q; } return h; } void outlist(SLIST *h) { SLIST *p; p=h->next; if (p==NULL) printf("\nThe list is NULL!\n"); else { printf("\nHead"); do { printf("->%d",p->data); p=p->next; } while(p!=NULL); printf("->End\n"); } }
这是一个C语言程序,包含了一个结构体定义和三个函数的定义。
结构体SLIST定义了一个单向链表的节点类型,包含了一个int类型的数据和一个指向下一个节点的指针。
函数creatlist用于创建一个带头结点的单向链表,函数的参数包括一个整型数组和数组中元素的数量。函数首先申请一个头结点,然后依次申请节点并将其插入到链表尾部。最后函数返回头结点指针。
函数outlist用于输出一个带头结点的单向链表,函数的参数为链表头结点指针。函数首先检查链表是否为空,如果为空则输出提示信息,否则依次输出链表中节点的数据值。
函数fun用于将两个带头结点的单向链表合并成一个同向单链表,函数的参数为两个链表的头结点指针。函数的实现过程中,可以创建一个新的带头结点的单向链表,然后依次将两个链表中的节点插入到新链表中,最后返回新链表的头结点指针。
在main函数中,程序首先创建了两个带头结点的单向链表,然后输出这两个链表的内容。接着程序调用fun函数将两个链表合并成一个同向单链表,最后输出合并后的链表的内容。
阅读全文