I学霸官方免费教程三十五:Java集合框架之Collection接口和Collections类
来源:互联网 发布:会计师事务所 知乎 编辑:程序博客网 时间:2024/05/20 21:26
Collection接口
Collection接口是List和Set接口的父接口,其中主要定义了一些集合基本操作的方法,包括与Iterator之间的关系List extends Collection
ArrayList implements List
LinkedList implements List
Vector implements List
Set extends Collection
HashSet implements Set
SortedSet extends Set
TreeSet implements SortedSet
Map接口
HashMap implements Map
SortedMap extends Map
NavigableMap extends Map
TreeMap implements NavigableMap
Hashtable implements Map
Properties extends Hashtable
Iterator:迭代器
Collections类
操作集合的一个工具类,类似Arrays类;其中最主要的是排序方法sort,以下两种方式使用sort方法。实例一:package collections.comparable;import java.util.ArrayList;import java.util.Collections;import java.util.List;/** * 演示Collections类中的一些常用方法 * @author 学霸联盟 - 赵灿 */public class CollectionsDemo {public static void main(String[] args) {List<Element> list = new ArrayList<Element>();list.add(new Element(2));list.add(new Element(1));list.add(new Element(4));list.add(new Element(3));//循环输出排序前的顺序System.out.println("----------- 排序前 ---------");for (Element element : list) {System.out.print(element.getValue() + " ");}/* * Collections中的sort方法只能对List集合排序 * 当加入List集合的元素实现了Comparable接口 * 可以直接使用sort方法排序 */Collections.sort(list);System.out.println();System.out.println("----------- 排序后 ---------");//循环输出排序前的顺序for (Element element : list) {System.out.print(element.getValue() + " ");}System.out.println();System.out.println("最大值:" + Collections.max(list).getValue());System.out.println("最小值:" + Collections.min(list).getValue());}}/** * Element类 实现 Comparable接口 * @author 学霸联盟 - 赵灿 */class Element implements Comparable<Element>{private int value;public Element(){ }public Element(int value){this.value = value;}/* * 重写接口中的比较方法 * 注意这里的参数不能再是Object类型,而要是泛型传入的Element类或其子类 */@Overridepublic int compareTo(Element e) {//升序排列,当前对象的值减去参数对象的值//降序排列,参数对象的值减去当前对象的值return this.value - e.value;}public int getValue(){return value;}}运行结果:----------- 排序前 ---------2 1 4 3 ----------- 排序后 ---------1 2 3 4 最大值:4最小值:1
实例二:package collections.comparator;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;/** * 演示Collections类中的一些常用方法 * @author 学霸联盟 - 赵灿 */public class CollectionsDemo {public static void main(String[] args) {SortUtil su = new SortUtil();List<Entity> list = new ArrayList<Entity>();list.add(new Entity("b"));list.add(new Entity("a"));list.add(new Entity("d"));list.add(new Entity("c"));//循环输出排序前的顺序System.out.println("----------- 排序前 ---------");for (Entity element : list) {System.out.print(element.getTag() + " ");}/* * Collections中的sort方法只能对List集合排序 * 当加入List集合的元素没有实现Comparable接口 * 需要提供一个排序工具类的对象,实现Comparator接口 */Collections.sort(list, su);System.out.println();System.out.println("----------- 排序后 ---------");//循环输出排序前的顺序for (Entity element : list) {System.out.print(element.getTag() + " ");}System.out.println();System.out.println("最大值:" + Collections.max(list, su).getTag());System.out.println("最小值:" + Collections.min(list, su).getTag());}}/** * Entity类 * 实体类,只负责存储数据 * @author 学霸联盟 - 赵灿 */class Entity{private String tag;public Entity(String tag){this.tag = tag;}public String getTag(){return tag;}}/** * SortUtil类 实现 Comparator接口 * 排序工具类,只负责对象比较 * @author 学霸联盟 - 赵灿 */class SortUtil implements Comparator<Entity>{//实现接口中的方法,自定义比较两个对象的比较规则@Overridepublic int compare(Entity e1, Entity e2) {/* * 根据两个Entity类型的对象的tag属性比较 * tag属性是String类型,String类型实现了Comparable接口 * 所以调用String对象的compareTo方法比较既可 * 升序排列使用第一个参数的tag属性调用compareTo方法,第二个参数作为compareTo方法的参数 * 降序排列使用第二个参数的tag属性调用compareTo方法,第一个参数作为compareTo方法的参数 */return e1.getTag().compareTo(e2.getTag());}}运行结果:----------- 排序前 ---------b a d c ----------- 排序后 ---------a b c d 最大值:d最小值:a
0 0
- I学霸官方免费教程三十五:Java集合框架之Collection接口和Collections类
- I学霸官方免费教程三十一:Java集合框架之List集合
- I学霸官方免费教程三十二:Java集合框架之Set集合
- I学霸官方免费教程三十三:Java集合框架之Map集合
- I学霸官方免费教程三十四:Java集合框架之泛型集合
- I学霸官方免费教程十七:Java面向对象之接口
- I学霸官方免费教程十:Java基础之关键字static和this
- I学霸官方免费教程四十三 :Java流之字符流 Reader和Writer
- I学霸官方免费教程四十六 :Java基础之序列化和反序列化
- Java集合框架官方教程(1):Collection/Set/List接口
- I学霸官方免费教程二十:Java常用类之StringBuffer类和StringBuilder类
- I学霸官方免费教程二十四:Java常用类之随机数 Math类和Random类
- I学霸官方免费教程十八:Java常用类之Object类
- I学霸官方免费教程十九:Java常用类之String类
- I学霸官方免费教程十六:Java面向对象之抽象类
- I学霸官方免费教程二十七:Java基础教程之Arrays类
- I学霸官方免费教程四十四 :Java流之字文件File类
- I学霸官方免费教程四十二 :Java流之字节流 输入流和输出流 InputStream和OutputStream
- Glass Beads - POJ 1509 最小表示法
- surf
- Oracle 日期那些事
- LeetCode(27)Remove Element
- 踢足球
- I学霸官方免费教程三十五:Java集合框架之Collection接口和Collections类
- Eclipse 快捷键汇总,基本都包括了
- ant 封装 时出现java.lang.OutOfMemoryError: Java heap space
- zoj2688 Requirements 曼哈顿距离
- PHP常用函数使用方法记录
- GDB调试
- NOI Linux Terminal(终端)使用方法(笑)
- django(学习1)环境搭建
- 转发与重定向的区别