JAV基础————对集合的简单理解

Collection:
可以存储不同类型的对象,而且随着存储对象的的增加容量自动增加。
添加的都是对象,不能是基本类型。
每种集合存储数据的方式是不同的,也就是使用的数据结构是不同的。
Collection中重要的接口为:List,Set。
    List: 存储的对象是有序的,可以重复的。(有序是指集合中对象的顺序和添加对象的顺序是一致的。)
List:
ArrayList    LinkedList    Vector
ArrayList:底层使用的数据结构是数组,线程不安全的,查找速度快,增删速度慢。
Linkedlist:底层使用的数据结构是链表,线程不安全的,查找速度慢,增删速度快。
Vector:与ArreayList类似,但是线程安全的,被ArrayList取代。


    Set: 存储的对象是无序的,不可以重复的。
Set:
HashSet     TreeSet
HashSet:底层使用的数据结构是哈希表,线程不安全的。
TreeSet:底层使用的数据结构是二叉树,线程不安全的。


ArrayList:
//去除集合中重复的对象
ArrayList list = new ArrayList();
list.add(“str01”);
list.add(“str02”);
list.add(“str03”);
list.add(“str02”);
ArrayList list2 = new ArrayList();//创建新的集合
for(int i=0;i<list.size();i++)
{
  Object obj = list.get(i);
  //contains()方法依据的是boolean equals()方法
  If(!(list2.contains(obj))
  {
     list2.add(obj);
  }
}
判断两个new 对象是否相同,在new 对象类里重写equals()方法
public boolean equals(Object obj)
{
  If(!(obj instanceof Student))
 {
    throw new ClassCastException();}
 } 
  Student stu = (Student)obj;
  return this.age==stu.age && this.name.equals(stu.name);
}


LinkedList:
特有的方法:addFirst(),addFirst()---添加
getFirst(),getLast()---获取
removeFirst(),removeLast()---删除
   从jdk1.6开始出现:
offerFirst(),offerLast()---添加
peekFirst(),peekLast()---获取
pollFirst(),pollLast()---删除


HashSet:
   保证对象唯一的方式:
   1.  在添加对象时先用对象的哈希值和集合中对象的哈希值分别进行比较,如果集合对象的哈希值
   都不相同,那么把对象加入集合
   2.  如果出现哈希值相同的,那么调用equals()方法返回true则认为是同一对象,不把该对象加入
   集合,否则认为是不同的对象,加入集合


TreeSet:
   在使用add()添加对象是会对加入集合的对象进行排序调用了compareTo()方法来进行比较(按字典顺序)
   1.排序方式一:
集合中对象所属的类实现了comparable接口中的 int compareTo(Object obj)方法,TreeSet依据该方法 进行排序
保证对象唯一的方式:compareTo()返回值为0,则对象相同
   2.排序方式二:
自定义一种排序方式,实现接口Comparator中的 int compare(Object obj)方法
   注意:当TreeSet存在自定义排序方式时,自定义排序优先
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值