栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

集合的梳理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

集合的梳理

集合(未完)
  • 数组的初始化(简单描述)
  • java.utli
    • Arrays
    • Collections
  • 数组与集合
    • 概念
  • 集合框架
    • Collection接口
      • List接口
      • Set接口
    • 迭代器Iterator
    • foreach语法
    • Map接口(持续更新)
      • HashMap
      • linkedHashMap
      • TreeMap
      • Hashtable
      • Properties

数组的初始化(简单描述)
//初始化前:只给引用分配了存储空间  a
//初始化:给对象本身分配空间       new或者{}
//初始化
//第一种
int[] a = new int[5];
//第二种
int[] a = {1,6,2,8};
//第三种
int[] a = new int[] {1,2,9,7}
java.utli Arrays

1.Arrays.asList:将数组转换为一个List对象
2.Arrays.toString打印数组

Collections

Collections.addAll(Collection collection,数组)(与Collection的addAll(Collection coll)方法不同)

数组与集合 概念

数组:

1.数组初始化后,长度确定,无法修改。

2.数组声明的类型,决定了元素初始化时的类型 (也就是一个int类型的数组中只能存放int元素)

3.添加、删除、插入等操作很难进行

集合(容器名称的原因:由于Collection的存在)

1.长度可以修改

2.java SE5之后可以通过泛型防止错误的类型放入集合

3.许多方法可以对其进行增删改查,遍历(见下)

集合框架

Collection接口

Collection接口是List,Set接口的父接口,单列集合,用来存储一个一个的对象,所有的Collection都可以使用foreach语法遍历。

Collection接口方法:

//添加
add(Object obj)
addAll(Collection coll)
remove(Object obj) //equals方法判断删除找到的第一个元素
size()//元素个数
clear()//清空集合元素
iterator()//返回迭代器对象,遍历
isEmpty()//判断是否是空集合
boolean retainAll(Collection collection): 把交集的结果存在当前集合中,不影响collection

List接口

List接口是Collection的子接口之一,元素有序且可重复 ,Collection所有的方法它都可以用。并且由于有序性,增加了通过索引操作集合元素的方法。

List接口方法:

//添加
add(int index, Object obj)
addAll(int index, Collection collection)
//查
get(int index)//获取index位置的元素
indexOf(Object obj)//返回obj在首次出现的位置
lastIndexOf(Object obj)//返回obj在末次出现的位置
List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合
//删
remove(int index)//移除index位置的元素,并返回此元素
//改
set(int index, Object ele)//设置index位置的元素

List接口的3个实现类

注意:如果要使用实现类特有的方法请勿使用向上转型(向上转型后仅能使用父类的方法)

  • 1.ArrayList:随机访问时使用
  • 2.linkedList:频繁的插入或删除元素时使用
  • 3.Vector
Set接口

无序的、不可重复(3个实现类)

存放在Set容器中的对象,对应的类要重写hashCode()和equals()方法(原因放入对象时根据hashCode()计算放入位置,如果hashCode()相同,equals()比较,相同元素不能放入,无序只是我们平常认为无序即遍历顺序的无序,实际上它是另一种“有序”)

  • 1.HashSet:最快的查询速度

不保证元素排列顺序(元素输出的顺序可能与插入的顺序不同)

两个对象通过hashCode()和equals()判断是否相等

  • 2.linkedHashSet

元素的顺序看起来以插入的顺序保存

  • 3.TreeSet:保持元素处于排序状态(待补充)
迭代器Iterator

Collection接口继承java.lang.Iterable接口,Iterable接口有一个iterator()方法,所有实现Collection接口的类都有一个iterator()方法,用来返回一个实现了Iterator接口的对象。
使用步骤:

1.调用iterator()方法返回一个Iterable对象
2.调用hashNext()检查下一个是否有元素
3.调用next()获取下一个元素
4.内部定义了remove()方法(与集合中直接调用的remove()不是一个),在遍历的时候,可以删除集合中的元素。

public class Person {};
Collection coll = new ArrayList();
        coll.add(12);
        coll.add(34);
        coll.add(new Person());
        coll.add(false);
Iterator iterator = coll.iterator();
while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
foreach语法

foreach语法除了被用于数组外,它还可以用于任何Collection对象。

public class Person {};
Collection coll = new ArrayList();
        coll.add(12);
        coll.add(34);
        coll.add(new Person());
        coll.add(false);
for(Object obj:coll) {
    System.out.println(obj);
}
Map接口(持续更新)

Map接口是双列集合,将对象与对象相关联,双列结合(key - value)

HashMap

快速访问

linkedHashMap

保持元素插入的顺序

TreeMap

“键”始终处于排序状态

Hashtable Properties
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/283943.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号