如何使用TreeSet的自定义功能

之前一直都知道TreeSet是具有排序功能的集合,可是一直都没有使用过,一直使用List,把第一次使用的方法记录下来
treeSet的自定义排序
首先所存对象要实现接口Comparable,并实现此接口中的方法compareTo 在这个函数中定义你所期望的排序方式,有一点不要忘记就是重写toString方法,不然会是十六进制的乱码


package com.founder.ids.entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.apache.commons.lang.StringUtils;

@Entity
@Table(name="SURVEY_ITEM")
public class SurveyItem implements Serializable,Comparable<SurveyItem> {

private static final long serialVersionUID = 1L;

@Transient
private List<SurveyOption> surveyOptions;

@Transient
private List<PollText> surveryTexts;

@Id
@Column(name="ID",columnDefinition="NUMBER|调查项标识",length=5,nullable=false)
private Long id;

@Column(name="DESCRIPTION",columnDefinition="VARCHAR2|调查描述",length=500,nullable=false)
private String description;

@Column(name="LABEL_TYPE_CODE",columnDefinition="VARCHAR2|创建标签的类型编码",length=20,nullable=true)
private String labelTypeCode;

@Column(name="SURVEY_ID",columnDefinition="NUMBER|调查表ID",length=11,nullable=true)
private Long surveyId;

@Transient
private String pollOptionValue;

public Long getId() {
return this.id;
}

public void setId(Long id) {
this.id = id;
}

public String getDescription() {
return this.description;
}

public void setDescription(String description) {
this.description = description;
}

public String getLabelTypeCode() {
return labelTypeCode;
}

public void setLabelTypeCode(String labelTypeCode) {
this.labelTypeCode = labelTypeCode;
}

public Long getSurveyId() {
return this.surveyId;
}

public void setSurveyId(Long surveyId) {
this.surveyId = surveyId;
}

public List<SurveyOption> getSurveyOptions() {
if(null == surveyOptions || surveyOptions.isEmpty())
return new ArrayList<SurveyOption>();
for (SurveyOption surveyOption : surveyOptions) {
surveyOption.setItemId(id);
}
return surveyOptions;
}

public void setSurveyOptions(List<SurveyOption> surveyOptions) {
this.surveyOptions = surveyOptions;
}

public List<PollText> getSurveryTexts() {
return surveryTexts;
}

public void setSurveryTexts(List<PollText> surveryTexts) {
this.surveryTexts = surveryTexts;
}

public String getPollOptionValue() {
return pollOptionValue;
}

public void setPollOptionValue(String pollOptionValue) {
this.pollOptionValue = pollOptionValue;
}

/**
* is empty
*/
public boolean isEmpty() {

if(StringUtils.isEmpty(this.getDescription())
|| StringUtils.isEmpty(getLabelTypeCode())
|| isEmptyOption()){
return true;
}

return false;
}

private boolean isEmptyOption(){
for(SurveyOption optionOne: this.getSurveyOptions()){
if(null == optionOne || optionOne.isEmpty()){
return true;
}
}

return false;
}

public String toHtml() {
StringBuilder sb = new StringBuilder();

if(this.getLabelTypeCode().equalsIgnoreCase("TEXT")){
generateTextHtml(sb);
}else if(this.getLabelTypeCode().equalsIgnoreCase("RADIO")){
generateRadioHtml(sb);
}else if(this.getLabelTypeCode().equalsIgnoreCase("CHECKBOX")){
generateCheckboxHtml(sb);
}

return sb.toString();
}

private void generateCheckboxHtml(StringBuilder sb) {
StringBuilder sbTmp = new StringBuilder();
for(SurveyOption optionOne: this.getSurveyOptions()){
sbTmp.append("  <input type=\"checkbox\" value=\""+optionOne.getId()+"\" name=\"chk_"+this.getSurveyId()+"_"+this.getId()+"_"+optionOne.getId()+"\" />  "+optionOne.getItem());
}

sb.append("<tr><td>"+this.getDescription()+"</td><td>" +sbTmp.toString() +"</td></tr>");
}

private void generateRadioHtml(StringBuilder sb) {
StringBuilder sbTmp = new StringBuilder();
for(SurveyOption optionOne: this.getSurveyOptions()){
sbTmp.append("  <input type=\"radio\" value=\""+optionOne.getId()+"\" name=\"radio_"+this.getSurveyId()+"_"+this.getId()+"\" />  "+optionOne.getItem());
}

sb.append("<tr><td>"+this.getDescription()+"</td><td>" +sbTmp.toString() +"</td></tr>");
}

private void generateTextHtml(StringBuilder sb) {
sb.append("<tr><td>"+this.getDescription()+"</td><td><textarea name=\"text_"+this.getSurveyId()+"_"+this.getId()+"\"></textarea></td></tr>");
}

[b][b][b]//重写toString()方法,因为如果不重写,打印出来的是16进制代码
@Override
public String toString() {
return id + " " + description;
}

//使用treeSet时按照 主键的升序排序
@Override
public int compareTo(SurveyItem o) {
return (int) (this.id - o.id);
}[/b][/b][/b]}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值