Java书籍Head First Java第二天

十六、集合与泛型

数据结构:排序

  1. ArrayList                        元素会维持被加入ArrayList的顺序,所以它们不会依照字母排序,ArrayList没有sort()方法
  2. TreeSet                         以有序状态保持并可防止重复
  3. HashMap                      可用成对的name/value来保存与取出 
  4. LinkedList                      针对经常插入或删除中间元素所设计的高效率集合
  5. HashSet                         防止重复的集合,可快速地寻找相符的元素
  6. LinkedHashMap             类似HashMap,但可记住元素插入的顺序,也可设定依照元素上次存取的小猴来排序

Collections.sort()

sort()很大量地运用到泛型(generic)功能,在程序中看见<>就代表泛型正在使用

在泛型出现之前,没有办法声明ArrayList的类型,所以只能用Object来操作

extends和implements

  1. extends是继承某个类,继承之后可以使用父类的方法,也可以重写父类的方法
  2. implements是显现多个接口,接口的方法一般为空,也可以重写父类的方法,但不可覆盖父类的方法或变量名
  3. java不支持多重继承,可以实现多个接口
  4. class A extends B implements C,D,E
  5.  

接口的注意事项:

  1. 实现一个接口就是要实现该接口的所有的方法(抽象类除外)
  2. 接口中的方法都是抽象的。
  3. 多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口

Comparable

实现Comparable接口

comparableTo<T o>

经常使用自制的Comparator接口可以很好地实各种功能的排序

    ArrayList<Song> songList = new ArrayList<Song>();

    public static void main(String[] args) {
        Compare c = new Compare();
        c.go();
    }

    class ArtistCompare implements Comparator<Song>{

        @Override
        public int compare(Song one, Song two) {
            return one.getArtist().compareTo(two.getArtist());
        }
    }

    public void go(){
        getSongs();
    //    Collections.sort(songList);  song类必须实现Comparable接口才能用
        ArtistCompare artistCompare = new ArtistCompare();
        Collections.sort(songList,artistCompare);
        
    }

    private void getSongs() {

    }

List、Set、Map

  1. List:对付顺序的好帮手
  2. Set:不允许有重复的元素
  3. Map:使用成对的键值和数据值    可允许数据值重复,键值不可重复  

HashSet如何检查重复:hashCode()与equals()

  1. 如果两个有对象相等,则hashcode必须相等
  2. 如果两个对象相等,则equals返回的值为true
  3. 如果两个对象有相同的hashcode值,它们不一定相等
  4. 如果equals()被覆盖,则hashcode()也必须被覆盖

     

hashcode就是通过hash函数得来的,通俗的说,就是通过某一种算法得到的,hashcode就是在hash表中有对应的位置。

(如果记得hash表就很容易理解,hash值可以相同)

十七、包、jar存档文件和部署

十八、远程部署的RMI

更多的细节在Java web课程中体现,明天复习web!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值