Java 获取某个表列下的元素列表

Java 获取某个表列下的元素列表,java,vaadin,Java,Vaadin,此表由下面的代码生成。(表中的数据是垃圾) 问题: 如何按项目的显示顺序获取某列下的项目列表 我想做一些类似table.GetListFromColumn(“carmake”)的事情,这样我就有了[“阿斯顿·马丁”、“保时捷911”、“法拉利”] 或者beanItemContainer.GetListFromColumn(“carmake”) @覆盖 公共无效初始化(VAADINQUEST请求){ 制动响应时间1=新制动响应时间(0.2f); 制动响应时间2=新制动响应时间(0.8f); 制动

此表由下面的代码生成。(表中的数据是垃圾)

问题: 如何按项目的显示顺序获取某列下的项目列表

我想做一些类似table.GetListFromColumn(“carmake”)的事情,这样我就有了[“阿斯顿·马丁”、“保时捷911”、“法拉利”]

或者beanItemContainer.GetListFromColumn(“carmake”)

@覆盖
公共无效初始化(VAADINQUEST请求){
制动响应时间1=新制动响应时间(0.2f);
制动响应时间2=新制动响应时间(0.8f);
制动响应时间3=新制动响应时间(0.5f);
Collectionc=newarraylist();
c、 添加(新跑车(“法拉利”,180.0,“汤姆”,time1));
c、 添加(新跑车(“阿斯顿马丁”,165.0,“哈利”,时代2));
c、 添加(新款跑车(“保时捷911”,145.0,“迪克”,time3));
MyBeanItemContainer=新的MyBeanItemContainer(SportsCar.class,c);
Table Table=新表();
t、 setContainerDataSource(容器);
此.setContent(表);
}

公共类BrakerResponseTime{
浮动时间;
/**
*创建Demo.BrakeResponseTime。
*/
公共制动器响应时间(浮动时间){
这个时间=时间;
}
/**
*抓紧时间。
* 
*@报时。
*/
公共浮点getTime(){
返回时间;
}
/**
*设定时间。
* 
*@param时间
*时间。
*/
公共无效设置时间(浮动时间){
这个时间=时间;
}
@凌驾
公共字符串toString(){
返回时间+“/%”;
}
/*
*(非Javadoc)
* 
*@see java.lang.Comparable#compareTo(java.lang.Object)
*/
@凌驾
公共int比较(制动响应时间o){
if(null==o){
返回1;
}
if(time==o.getTime()){
返回0;
}
返回(时间

公共类MyBeanItemContainer扩展了BeanItemContainer{
/**
*创建Demo.MyBeanItemContainer。
*/
公共MyBeanItemContainer(类类型,集合){
超级(类型、集合);
}
私有int compareBrakeResponseTimeWithNullCheck(BrakerResponseTimeO1,BrakerResponseTimeO2){
如果(空==o1&&(空==o2)){
返回0;
}否则如果(null==o1&&(null!=o2)){
返回-1;
}否则如果(空!=o1&&(空==o2)){
返回1;
}否则{
返回o1。与(o2)相比;
}
}
@凌驾
公共无效排序(最终对象[]属性ID,最终布尔值[]升序){
super.sort(propertyId,升序);
System.out.println(Arrays.toString(propertyId));
最终布尔排序集=升序[0];
最终对象sortContainerPropertyId=propertyId[0];
List=super.getAllItemId();
Collections.sort(list,newcomparator(){
@凌驾
公共int比较(最终跑车o1,最终跑车o2){
int结果=0;
if(“responseTime”.equals(sortContainerPropertyId)){
结果=compareBrakeResponseTimeWithNullCheck(o1.getResponseTime(),o2.getResponseTime());
}
如果(!排序){
结果*=-1;
}
返回结果;
}
});
}
}
公共级跑车{
弦卡马克;
双上速度;
字符串驱动器;
制动响应时间;
公共跑车(弦乐卡马克,双上速,弦乐驱动,刹车响应时间){
this.carMake=carMake;
this.topspeed=最高速度;
this.driver=driver;
this.responseTime=responseTime;
}
/**
*去拿卡马克。
* 
*@归还卡马克。
*/
公共字符串getcarMake(){
返回卡马克;
}
/**
*设置卡马克。
* 
*@param carMake
*卡马克。
*/
公共无效设置carMake(字符串carMake){
this.carMake=carMake;
}
/**
*取得最高速度。
* 
*@返回最高速度。
*/
公共双getTopspeed(){
返回速度;
}
/**
*设定最高速度。
* 
*@param-topspeed
*最高速度。
*/
公共空隙设置速度(双速度){
this.topspeed=最高速度;
}
/**
*叫司机来。
* 
*@把司机还给我。
*/
公共字符串getDriver(){
返回驱动器;
}
/**
*让司机下车。
* 
*@param驱动程序
*司机。
*/
公共无效设置驱动程序(字符串驱动程序){
this.driver=driver;
}
/**
*获得响应时间。
*@返回响应时间。
*/
公共制动器响应时间getResponseTime(){
返回响应时间;
}
/**
*设定响应时间。
*@param responseTime响应时间。
*/
公共无效setResponseTime(BrakerResponseTime responseTime){
this.responseTime=responseTime;
}
}

我没有意识到我可以通过这种方式访问bean容器的属性

container.getIdByIndex(0).getCarMake()

这就是我要找的

这是关于获取格式化/过滤的值吗?或者你为什么不能用你的容器?
public class BrakeResponseTime implements Comparable<BrakeResponseTime> {

float time;

/**
 * Create a Demo.BrakeResponseTime.
 */
public BrakeResponseTime(float time) {
    this.time = time;
}

/**
 * Get the time.
 * 
 * @return the time.
 */
public float getTime() {
    return time;
}

/**
 * Set the time.
 * 
 * @param time
 *            the time.
 */
public void setTime(float time) {
    this.time = time;
}

@Override
public String toString() {
    return time +"/%";
}

/*
 * (non-Javadoc)
 * 
 * @see java.lang.Comparable#compareTo(java.lang.Object)
 */
@Override
public int compareTo(BrakeResponseTime o) {
    if (null == o) {
        return 1;
    }
    if(time==o.getTime()){
        return 0;
    }
    return (time < o.getTime() ? -1 : 1);
}

}
public class MyBeanItemContainer extends BeanItemContainer<SportsCar> {
/**
 * Create a Demo.MyBeanItemContainer.
 */
public MyBeanItemContainer(Class<SportsCar> type, Collection<SportsCar> collection) {
    super(type, collection);
}

private int compareBrakeResponseTimeWithNullCheck(BrakeResponseTime o1, BrakeResponseTime o2) {
    if (null == o1 && (null == o2)) {
        return 0;
    } else if (null == o1 && (null != o2)) {
        return -1;
    }else if(null != o1 && (null == o2)){
        return 1;
    } else {
        return o1.compareTo(o2);
    }
}

@Override
public void sort(final Object[] propertyId, final boolean[] ascending) {
    super.sort(propertyId, ascending);
    System.out.println(Arrays.toString(propertyId));
    final boolean sortAscending = ascending[0];
    final Object sortContainerPropertyId = propertyId[0];
    List<SportsCar> list = super.getAllItemIds();
    Collections.sort(list, new Comparator<SportsCar>() {
        @Override
        public int compare(final SportsCar o1, final SportsCar o2) {
            int result = 0;
            if ("responseTime".equals(sortContainerPropertyId)) {
                result = compareBrakeResponseTimeWithNullCheck(o1.getResponseTime(), o2.getResponseTime());
            }

            if (!sortAscending) {
                result *= -1;
            }
            return result;
        }
    });
}
}



public class SportsCar {
String carMake;
double topspeed;
String driver;
BrakeResponseTime responseTime;

public SportsCar(String carMake, double topspeed, String driver, BrakeResponseTime responseTime) {

    this.carMake = carMake;
    this.topspeed = topspeed;
    this.driver = driver;
    this.responseTime = responseTime;
}

/**
 * Get the carMake.
 * 
 * @return the carMake.
 */
public String getcarMake() {
    return carMake;
}

/**
 * Set the carMake.
 * 
 * @param carMake
 *            the carMake.
 */
public void setcarMake(String carMake) {
    this.carMake = carMake;
}

/**
 * Get the topspeed.
 * 
 * @return the topspeed.
 */
public double getTopspeed() {
    return topspeed;
}

/**
 * Set the topspeed.
 * 
 * @param topspeed
 *            the topspeed.
 */
public void setTopspeed(double topspeed) {
    this.topspeed = topspeed;
}

/**
 * Get the driver.
 * 
 * @return the driver.
 */
public String getDriver() {
    return driver;
}

/**
 * Set the driver.
 * 
 * @param driver
 *            the driver.
 */
public void setDriver(String driver) {
    this.driver = driver;
}

/**
 * Get the responseTime.
 * @return the responseTime.
 */
public BrakeResponseTime getResponseTime() {
    return responseTime;
}

/**
 * Set the responseTime.
 * @param responseTime the responseTime.
 */
public void setResponseTime(BrakeResponseTime responseTime) {
    this.responseTime = responseTime;
}


}
container.getIdByIndex(0).getCarMake()