得到集合中的最后一条记录&和求基数偶数

本文介绍了一种使用Java程序来交替显示表格行颜色的方法,并确保表头和表尾颜色一致,以增强数据可视化的清晰度。
有这样一个例子,需要用一个表格来显示从数据库里读取出来的数据。显示结果的表头和表尾合计需要显示同样的颜色。
尔中间每行则要显示交叉颜色。来统计出数据总数及百分比。
我想到的是用基数和偶数这样一个算法来实现交叉的颜色显示,尔表的尾部合计读取出来的数据要和表头同样的颜色。开始我首选了用
lastIndex()这个函数来判断集合是否读取到最后一行。后来又想到有一个更简单的方法。就是用循环变数i和集合list.size() -1 来比较。
实现例子如下:
public class Sample{
List list = new ArrayList(1,3,5,78,25,36);
public void showArray(){
String tmpStr="";
for(int i=0;i<list.size();i++){
System.out.println("list"+i+"="+list.get(i));
//得到集合中最后一条记录并显示”灰色“颜色
if(i==list.size()-1)
{
tmpStr+="<table border='0' width='100%' border='0' style='border-left:1px solid";

tmpStr+="#000000;border-bottom:1px solid #000000;border-right:0px solid #000000'>";
tmpStr+="<tr>";
tmpStr+="<td colspan='2' bgcolor='#cccccc' align='center' nowrap ";

tmpStr+="left:12px;border-top:1px";

tmpStr+="solid #000000;border-right:1px solid #000000'>显示灰色</td>";
tmpStr+="</tr>";
tmpStr+="</table>";
}else{ //如果是true 则显示偶数,否则显示基数
if(i%2==0){
tmpStr+="<table border='0' width='100%' border='0' style='border-left:1px solid tmpStr+="#000000;border-bottom:1px solid #000000;border-right:0px solid #000000'>";
tmpStr+="<tr>";
tmpStr+="<td colspan='2' bgcolor='#ffffff' align='center' nowrap

tmpStr+="<style='padding-";

tmpStr+="left:12px;border-top:1px solid #000000;border-right:1px solid #000000'>";
tmpStr+="显示白色</td>";
tmpStr+="</tr>";
tmpStr+="</table>";
}else{
tmpStr+="<table border='0' width='100%' border='0' style='border-left:1px solid"; tmpStr+="#000000;border-bottom:1px solid #000000;border-right:0px solid #000000'>";
tmpStr+="<tr>";
tmpStr+="<td colspan='2' bgcolor='#eeeeee' align='center' "; tmpStr+="nowrap style='padding";

tmpStr+="-'left:12px;border-top:1px solid #000000;border-right:1px";

tmpStr+="solid #000000'>";

tmpStr+="显示浅灰色</td>";
tmpStr+="</tr>";
tmpStr+="</table>";
}

}
}
}
public static void main(String args[]){
Sample sample = new Sample();
sample.showArrayList();
}
}

如果有更好的解决办法的朋友 请不吝提示 谢谢
好的,下面是一个完整的C语言实现例子,它按照您的描述完成了从读入数据到构建单链表,并进一步将此列表分为两个独立的子列表&mdash;&mdash;一个包含所有偶数值结点,另一个则是由奇数值构成。之后会依照指定规则输出相应的信息。 ### 源代码: ```c #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; // 定义结点结构体 typedef struct Node { int val; struct Node *next; } Node; // 创建新结点函数 Node* createNewNode(int value){ Node *node = (Node *)malloc(sizeof(Node)); node-&gt;val = value; node-&gt;next = NULL; return node; } void appendToList(Node **headRef, int newData){ /* 如果头节点为空 */ if (*headRef == NULL) *headRef = createNewNode(newData); else{ Node *current = *headRef; while(current-&gt;next != NULL) current = current-&gt;next; // 添加新的结点到最后 current-&gt;next=createNewNode(newData); } } // 分离成偶数基数链表 void separateLists(Node *sourceList, Node **evenHead, Node **oddHead) { Node *ptr = sourceList; while(ptr!=NULL){ if((ptr-&gt;val)%2==0){ // 偶数添加进 even list. appendToList(evenHead, ptr-&gt;val); }else{ // 奇数添加进 odd list. appendToList(oddHead, ptr-&gt;val); } ptr=ptr-&gt;next; } } // 计算链表大小 int countNodes(Node *list){ int size=0; Node *temp=list; while(temp!=NULL){ size++; temp=temp-&gt;next; } return size; } // 打印链表内容 void printLinkedList(Node *list){ Node *temp=list; while(temp!=NULL){ printf(&quot;%d &quot;, temp-&gt;val); temp=temp-&gt;next; } } int main(){ int N,i,value; // 动态分配内存给原始链表及初始化指向头指针变量 Node *originList=NULL,*evenNumbers=NULL,*oddNumbers=NULL; // 输入整型数组长度N以及具体的数值集合 scanf(&quot;%d&quot;,&amp;N); for(i=0;i&lt;N;++i){ scanf(&quot;%d&quot;, &amp;value); appendToList(&amp;originList,value); } // 根据源链表生成偶数奇数链接串列 separateLists(originList,&amp;evenNumbers,&amp;oddNumbers); // 统计并输出每条分支的有效成员总量 printf(&quot;%d %d\n&quot;,countNodes(evenNumbers),countNodes(oddNumbers)); // 展示分离后的内容 printLinkedList(evenNumbers);puts(&quot;&quot;); //换行以便区分两部分的展示区域 printLinkedList(oddNumbers); return 0; } ``` 上述程序实现了以下步骤: 1. 用户首先提供一连串数字作为输入。 2. 然后我们将这些数字逐个加入到一个动态增长的单向链表中去。 3. 接下来我们遍历整个链表并将其中的每一个元素依据它的奇偶属性归类到两条单独管理的新建链表里边儿。(注意这里保留了原有的排列顺序) 4. 最终统计这两个链条各自的规模并向用户汇报出来同时依次列出它们所含有的全部组件直至结束为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值