Java基础之集合

1.集合

  • 必要性:为了使程序能够方便地存储和操纵数目不固定的一组数据。
  • Set:集合中的对象不按特定方式排序,并且没有重复对象。它的有些实现类能对集合中的对象按特定方式排序。
    List:集合中的对象按索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象。
    Map:集合中的每一个元素包含一对键对象和值对象,集合中没有重复的键对象,值对象可以重复。它的有些实现类能对集合中的键对象进行排序。
    这里写图片描述

1.1 Collection和Iterator接口

  • Collection接口声明了用于Java集合的通用方法:
    这里写图片描述
  • Iterator接口的基本方法:
    • hasNext():判断一个元素是否遍历完毕,如果没有,就返回true。
    • next():返回下一个元素
    • remove():从集合中删除上一个由next()方法返回的元素

1.2 Set(集)

  • 两个实现类:HashSet、TreeSet
    HashSet子类:LinkedHashSet 类
  • 基本用法:
Set<String> set = new HashSet<String>();
String s1 = new String("hello");
set.add(s1);
1.2.1 HashSet
  • 当用户定义的类覆盖了Object类的equals()方法和hashCode()方法,当equals()方法返回true时,二者的哈希码也相同。当没有覆盖hashCode()方法时,哈希码不一定一样。所以要覆盖两个方法。
1.2.1 TreeSet
  • 默认TreeSet采取自然排序方式,实现Comparable接口,有一个compareTo()方法,当二者相等时,返回0。进行的是升序排列。
    注意:此时只能向集合中加入同类型的对象,否则会抛出异常。
  • 改变了TreeSet集合中对象的某个属性之后,不会重新排序。
  • 客户化排序:Comparator接口的compare方法,相等时返回0。

1.3 List (列表)

  • 主要特征:元素以线性方式存储,集合中云讯存放重复对象。
  • 主要实现类:ArrayList和LinkedList
    ArrayList代表长度可变的数组,允许对元素进行快速随机访问,但是插入与删除元素速度较慢。
    LinkedList向List中插入和删除元素的速度较快,随机访问速度则相对较慢。
  • 为列表排序:
    • sort(List list):对list中的对象进行自然排序。
    • sort(List list,Comparator comparator):对List中的对象进行客户化排序,Comparator参数指定排序方式。

1.4 Map(映射)

  • 主要方法:put(Object key,Object value)方法向集合中加入元素。
    get(Object key,Object value)检索与键对象对应的值对象。
  • 主要实现类:HashMap和TreeMap
    HashMap按照哈希法来存取键对象,通过equals()方法比较为true时,两个键对象的hashCode()方法返回的哈希码也一样。
    TreeMap实现了SortedMap接口,能对键对象进行排序。
  • Map的enrtySet()方法返回一个集合,在这个集合中存放了Map.Entry类型的元素,每个Map.Entry对象代表Map中的一对键与值。

1.5用for循环遍历集合

public void print(Set<String> set){
                for(String element : set){
                    System.out.println(element);
                }
            }

语法”for(Type t:c){···}”,c表示需要遍历的集合,Type表示集合内元素的类型,t引用每次从集合中取出的当前元素。

1.6 Collections 类

含有一部分方法专门用于操纵List类型集合,还有一部分方法可以用于操纵所有Collection类型或Map类型的集合。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值