欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java基础部分(3)

程序员文章站 2023-02-10 15:36:20
Java中的常用类2 集合 数组与集合的区别: 1、数组长度固定,集合长度可变。 2、数组可以存储基本数据类型,集合只能存储对象。 集合类的结构图以及相关特点: Collection |--List 有序,可重复 |--ArrayList 底层数据结构是数组,查询快,增删慢。 线程不安全,效率高 | ......

java中的常用类2

  集合

Java基础部分(3)

 数组与集合的区别:

  1、数组长度固定,集合长度可变。

  2、数组可以存储基本数据类型,集合只能存储对象。

 集合类的结构图以及相关特点:

collection
  |--list 有序,可重复
    |--arraylist
      底层数据结构是数组,查询快,增删慢。
      线程不安全,效率高
    |--vector
      底层数据结构是数组,查询快,增删慢。
      线程安全,效率低
    |--linkedlist
      底层数据结构是链表,查询慢,增删快。
      线程不安全,效率高
  |--set 无序,唯一
    |--hashset
      底层数据结构是哈希表。
      如何保证元素唯一性的呢?
        依赖两个方法:hashcode()和equals()
        开发中自动生成这两个方法即可
      |--linkedhashset
        底层数据结构是链表和哈希表
        由链表保证元素有序
        由哈希表保证元素唯一
    |--treeset
      底层数据结构是红黑树。
      如何保证元素排序的呢?
        自然排序
        比较器排序
      如何保证元素唯一性的呢?
        根据比较的返回值是否是0来决定

map

  |--hashmap

    底层数据结构是哈希表

    存储的是键值对形式的元素,键唯一,值可以重复。

 集合中最常用类之 arraylist类:

//这里的e代表泛型,可以理解成object类型(虽然这样不准确,但是能够帮助理解)

//添加功能
public boolean add(e o)
public void add(int index,e obj)

//删除功能
public  e remove(int index) //根据索引删除
public  boolean remove(object o) //根据内容删除

//获取功能
public e get(int index) //获取指定位置上的元素
public int size()  //获取列表中的元素数量

//修改功能
public  e set(int index, e element) //替换指定位置内容

//判断
 public boolean contains(object elem) //是否包含指定元素
 public boolean isempty()  //判断是否为空

//转换
public object[] toarray() //将集合转换为数组

 

 集合中最常用类之hashset类:

  特别说明1:hashset集合的底层数据结构是哈希表。

  特别说明2:hashset的唯一性是由,hashcode()和equals()这两个方法来保证的。所以需要重新这两个方法来实现特定的唯一需求。

//添加功能 
public boolean add(e o) //如果此集合中还不包含指定元素,则添加指定元素。 

//删除功能
public boolean remove(object o) //如果指定元素存在于此集合中,则将其移除。 
public void clear() //从此集合中移除所有元素。 

//判断功能
public boolean contains(object o) // 如果此集合不包含指定元素,则返回 true。 
public boolean isempty() //如果此集合不包含任何元素,则返回 true。
 
//获取功能
public int size() //返回此集合中的元素的数量(集合的容量)。
  
//复制功能
public object clone() //返回此 hashset 实例的浅表复制:并没有克隆这些元素本身。 

//迭代器功能,用于遍历集合
public iterator<e> iterator() //返回对此集合中元素进行迭代的迭代器。

 集合中最常用类之hashmap类:

  特别说明1:map集合中的内容,都是以键值对的形式来存储的。并且键唯一,值可以重复。

  特别说明2:这种键值对的存储形式,在一些其他语言中又叫做字典。

//添加功能
public  v put(k key, v value) //添加键值对
public void putall(map<? extends k,? extends v> m) 
//删除功能
public  void clear() //删除所有
public  v remove(object key) //根据键删除数据
//判断功能
public  boolean containskey(object key) //判断是否包含该键
public  boolean containsvalue(object value) //判断是否包含该值
public  boolean isempty() //判断是否为空
//获取功能
public v get(object key)  //根据键找值
public set<k> keyset()  //获取键的集合信息
public  collection<v> values()  //获取值的集合信息
//长度功能
public int size() 

 

 

   文件相关类(io流)