zoukankan      html  css  js  c++  java
  • Java复习 之容器

    小生快要准备找工作了 现在开始复习一下Java基础之容器

    Set和List是一个个往里面存 Map是两个两个往里面装

    所谓重复指的是他们互相equals

    Collection 接口定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式

    Set中的数据对象没有顺序并且不可以重复

    List中的数据对象有顺序并且可以重复

    Map接口定义了健值映射对的存储方法

    1.Collection中的方法

    例1.

    package com.hw.Prepare;
    
    import java.util.*;
    
    public class test3 {
            public static void main(String[] args){
                    Collection a = new ArrayList();
                    a.add(new Integer(1));
                    a.add(new String("加油"));
                    a.add(new String("1331"));
                    System.out.println(a.size());
                    System.out.println(a);
            }
    }

    运行结果

    容器类对象在调用remove,contains等方法时会先比较对象是否相等,这将会涉及到对象类型的equals和hashcode方法,对于自定义的类型,需要重写equals和hashcode方法以实现自定义对象的对象相等规则

    例如 增加Name类相等的equals和hashcode的方法如下

    hashcode经常作为索引,能方便地找到对象的位置 效率比较高

    Iterator:

    例子1:

    例子二:

    增强的for循环

    Set接口是collection的子接口,Set接口是collecion的子接口,set接口没有提供额外的方法,但是实现set接口的容器类中的元素是没有顺序的,而且不可以重复。

    set容器可以跟数学中的集合相对应

    Hashset、TreeSet

    retainall

    求交集

    ArrayList 数组 LinkList 链表

    例子

    java.util.collections

     

    如何选择数据结构

    衡量标准:读的效率和改的效率

    Array读快改慢

    Linked改快读慢

    Hasn两者之间

    Map

    不能重复指的是equals 用hashcode比较效率比较高

    例子

    jdk1.5可以自动打包 自动包装为对象 或自动把对象转为基础类型

    例子

    例子

    改成自动打包 解包

    泛型:

    例子2

    例子

    总结

  • 相关阅读:
    poj 2425 AChessGame(博弈)
    poj2975 Nim 胜利的方案数
    hdu 5724 SG+状态压缩
    hdu 5274 Dylans loves tree(LCA + 线段树)
    hdu 5266 pog loves szh III(lca + 线段树)
    hdu 4031 attack 线段树区间更新
    51 nod 1188 最大公约数之和 V2
    51nod 1040 最大公约数之和(欧拉函数)
    51nod 1035:最长的循环节
    Nim游戏(组合游戏Combinatorial Games)
  • 原文地址:https://www.cnblogs.com/frankzone/p/9571646.html
Copyright © 2011-2022 走看看