`

Java泛型的使用及List排序

 
阅读更多


import java.util.ArrayList;

public class ItemList<S extends Comparable, T> extends ArrayList<T> implements
    Comparable<ItemList<S, T>> {

  private static final long serialVersionUID = 3752285817293910325L;

  private S key;

  public ItemList(S key) {
    this.key = key;
  }

  public S getKey() {
    return key;
  }

  public int compareTo(ItemList<S, T> o) {
    return key.compareTo(o.getKey());
  }

}




private void generateReport(List<DbRow> productList) {
    Map<Date, ItemList<Date, String>> productMap = new Hashtable<Date, ItemList<Date, String>>();
    for (DbRow row : productList) {
      DbProduct product = (DbProduct) row;
      Date releaseDate = product.getProductReleaseDate();
      ItemList<Date, String> list = productMap.get(releaseDate);
      if (list == null) {
        list = new ItemList<Date, String>(releaseDate);
        productMap.put(releaseDate, list);
      }
      list.add(product.getProNumber() + " " + product.getProName());
    }

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    String tempGoLiveDate = df.format(goLiveDate);

    StringWriter tempWriter = new StringWriter();
    PrintWriter writer = new PrintWriter(tempWriter);
    List<ItemList<Date, String>> releaseList = new ArrayList<ItemList<Date, String>>(productMap.values());
    Collections.sort(releaseList);
    for (ItemList<Date, String> release : releaseList) {
      writer.println(df.format(release.getKey()));
      for (String line : release) {
        writer.println(line);
      }
      writer.println();
    }
    writer.close();
  }

分享到:
评论

相关推荐

    java泛型技术之发展

    - **早期版本的局限**:在Java泛型出现之前,程序员通常使用Object作为容器类(如ArrayList、HashMap等)的默认类型,这导致了大量的类型转换操作,同时也容易引发ClassCastException。 - **类型擦除**:Java泛型...

    Java集合框架及泛型

    4. **基本类型参数**: Java泛型不能直接接受基本类型(如int、char),但可以通过创建对应的包装类(如Integer、Character)来使用。 5. **协变与逆变**: 在泛型中,类型参数的使用会影响类型安全。比如,List是...

    Java泛型编程最全总结

    Java泛型是Java编程语言中的一个关键特性,它在2004年随着JDK 5.0的发布被引入,极大地增强了代码的类型安全性和重用性。泛型允许我们在编写类、接口和方法时指定参数化类型,使得代码在编译时期就能捕获类型错误,...

    java泛型集合 java集合 集合 java Collection

    首先,Java泛型是一种在编译时提供类型安全性的机制,它允许我们在创建集合时指定元素的类型。这样可以防止在运行时出现ClassCastException,因为编译器会在代码执行前检查类型匹配。例如,我们可以声明一个只包含...

    java中list排序

    在 Java 中,对 List 排序可以使用 Collections.sort(list) 方法,但是这种方法只能对基本类型的 List 进行排序,如果 List 中包含的是对象,那么这种方法就不行了。这时需要使用Comparator接口来实现排序。 ...

    Java1.5泛型指南中文版

    感谢所有为Java泛型做出贡献的人们,包括设计者、实现者以及提供反馈和支持的社区成员。泛型是Java语言的一个重要特性,极大地提高了代码的质量和可维护性。 以上就是基于给定文件信息对Java 1.5泛型指南的主要知识...

    学士后Java集合框架和泛型课后习题答案

    在Java中,集合框架主要包括接口(如List、Set、Queue)和实现这些接口的类(如ArrayList、HashSet、LinkedList等)。这个框架允许我们高效地处理各种数据结构,而无需从头开始编写代码。泛型则是Java 5引入的一项...

    Java Generics and Collections (Java泛型与集合)

    通过阅读"Java Generics and Collections",开发者不仅可以掌握Java泛型和集合的基本使用,还能深入了解它们的高级特性和最佳实践,从而在实际项目中编写出更高质量的代码。这本书对于Java程序员来说是一份宝贵的...

    java List中对象多属性排序及各属性排序设置

    总结来说,Java中的List可以通过自定义Comparator或者利用泛型和方法引用来实现对象多属性的动态排序。这种技术在处理复杂数据结构时非常有用,使得代码更加简洁且易于维护。通过学习和实践这部分内容,开发者可以...

    LIST泛型排序

    总之,“LIST泛型排序”是Java编程中一个重要的实践技能,它使我们能够灵活地对包含复杂对象的列表进行定制化的排序。通过理解`Comparator`接口的工作原理,我们可以更好地管理和操作数据,提高代码的可读性和效率。

    Java泛型单链表

    【Java泛型单链表】是一种使用Java编程语言实现的数据结构,主要涉及到链表的创建、插入、删除等基本操作。在Java中,泛型允许我们编写可重用的代码,适用于多种数据类型,而无需进行重复的类型转换。在这个实现中,...

    Java将2个List集合合并到一个List里面并排序工具类

    3、使用者可以通过调用`ListMerger.mergeAndSortLists()`方法,传入两个预先排序的List参数,得到一个合并后仍按时间顺序排列的新List。这在处理多组时间序列数据,需要整合并有序显示时非常有用。 4、当合并来自...

    java 泛型实现坐标打印

    综上所述,通过使用Java泛型,我们可以创建一个适用于各种数据类型的坐标打印系统,同时保持代码的简洁性和可维护性。这个系统能够处理不同类型的数据,如整数或浮点数,并且可以根据需要进行排序和打印。

    Java SE编程入门教程 java泛型(共11页).pptx

    Java SE编程入门教程涵盖了许多核心概念,其中包括Java泛型,它是从Java 1.5版本开始引入的一个重要特性。泛型允许我们在编写代码时指定类型参数,从而在编译时提供类型安全性和代码复用性。 Java中的泛型定义: ...

    泛型实例<匿名方法实现排序与查找>

    总之,这个“泛型实例&lt;匿名方法实现排序与查找&gt;”是一个很好的实践,它涵盖了C#编程中的一些重要概念,包括泛型的使用、匿名方法的定义以及如何在实际应用中结合这两者进行数据操作。通过这个实例,你不仅能深化对...

    详解Java中使用泛型实现快速排序算法的方法

    在Java中,我们可以利用泛型来实现快速排序,这样就可以让排序功能适用于多种数据类型。泛型是Java中的一项重要特性,它允许在编译时检查类型安全,并且可以与任何引用类型一起工作。在快速排序的泛型实现中,我们...

    C++ STL Java泛型程序设计(WORD)

    Java泛型允许在类、接口和方法声明中使用类型参数,限制了插入和检索的元素类型。在Java中,泛型的使用可以防止在运行时出现ClassCastException。上面的Java代码展示了如何使用泛型类`GenericsFoo&lt;T&gt;`,其中`T`是...

    Java静态泛型使用方法实例解析

    Java静态泛型使用方法实例解析 Java静态泛型使用方法实例解析主要介绍了Java静态泛型使用方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下。 一...

Global site tag (gtag.js) - Google Analytics