集合类均在java.util包之下

集合类方法的功能基本为增、删、改、查,部分外加方法除外(如toArray()、toString()等)

1.List接口

底层为Object 数组,存放的数据可以重复,且数据有序储存、排列

1.1 ArrayList类

继承AbstracList<E>类,是List接口的实现类

1.1.1 声明

根据储存的数据类型可分为泛型和非泛型

(1)非泛型

ArrayList list1 = new ArrayList(); 非泛型即没有固定在集合中的数据类型,可添加任意种类数据类型

ArrayList arrayList = new ArrayList();
arrayList.add("China");
arrayLiat.add(10);
arrayList.add('A');

(2) 泛型

ArrayList<E> list1 = new ArrayList<>(); 泛型即定义集合中只能储存E数据类型的数据

ArrayList<String> arrayList = new ArrayList<>();//jdk1.5及以上等号右侧即可隐式表达数据类型
arrayList.add("Hello");
arrayList.add("World");
//arrayList.add(10); error!!!

(3) 泛型VS非泛型

表面上看,非泛型不仅声明简单而且可以添加多种数据类型,似乎很方便,但是在面对具体需求时则不然,泛型与非泛型的关系就如同杂货店和专卖店一样,各有优势,在一定领域中人们会更倾向于泛型定义

注:后续皆以泛型声明示例

方法

1.1.2增(add)

(1) add(String e)

在集合后顺序添加String类型元素e(创建对象list时泛型为String类型)

(2) add(int index, String element)

在第index个元素后添加String类型的元素element

(3) addAll(Collection<? extends String> c)

将String类型对象名为c的集合中所有元素顺序添加至本集合

ArrayList<String> list = new ArrayList<>();
list.add("Matthew");
list.add("Jason");
list.add("Robert");
ArrayList<String> list1 = new ArrayList<>();
list1.addAll(list);

(4) addAll(int index, Collection<? extends String> c)

将String类型对象名为c的集合中所有元素顺序添加至本集合的第index给元素后

1.1.2 删(remove, clear)

(1) remove(Object o)

Object类为类层级结构的根类,可以认为Object类为所有类的父类

此方法会移除集合中第一个value与o相同的元素

(2) remove(int index)

移除集合中第index个元素

(3) removeAll(Collection<?> c)

从此集合中删除指定集合中包含的所有元素,即原集合与参数集合取交集后取补集

ArrayList<String>() list1 = new ArrayList<>();
list1.add("Hello");
list1.add("World");
ArrayList<String>() list2 = new ArrayList<>();
list2.add("World");
list1.removeAll(list2);

此方法与retainAll(Collection<?> c)刚好相反,retainAll()会留下与c相同的元素,即原集合与参数集合取交集

(4) removeIf(Predicate<? super String> filter)

移除集合中满足条件的所有元素

ArrayList<Integer> list2 = new ArrayList<>();
list2.add(1);
list2.add(2);
list2.add(5);
list2.add(10);
list2.add(20);
list2.add(30);
list2.removeIf(temp->temp>=10);//print 1\n2\n5

(5) clear()

清楚集合中的所有元素

list.clear();

1.1.3 改(set)

将集合中的第index个元素用element替换

1.1.4 查(get)

(1) get(int index)

得到集合中第index个元素

(2) getClass()

返回集合所属类

ArrayList list = new ArrayList();
list.getClass();
//printf: class java.util.ArrayList

1.2 LinkedList 类

底层为链表

与ArrayList类所有方法名与用法一致

声明:

LinkedList list = new LinkedList();//M1
LinkedList<E>() list = new LinkedList<>();//M2

1.3 ArrayList VS LinkedList

ArrayList 增删块,查询慢

LinkedList 增删慢,查询快

二者不同的特性使得人们在不同领域有不同的选择

Java集合(类)框架(一)的更多相关文章

  1. Java集合(类)框架(二)

    1.Set集合 1.1 HashSet集合 HashSet底层为哈希码 不是数组,因此没有下标的概念,也就不能根据下标来查询某个元素 存放元素无序,不可重复 1.1.1 声明 Set<Strin ...

  2. Java集合(类)框架(三)

    1. Map集合 相较于List和Set集合而言,Map集合所储存的数据为双列行,数据是以key和value为一个单位进行存储的,如在建立一个学生Map的时候,其中的数据应为 学号-姓名(key-va ...

  3. Java 集合总体框架介绍

    Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表.Set集合 ...

  4. Java集合--整体框架

    Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表.Set集合 ...

  5. 《Java大学教程》—第17章 Java聚焦类框架

    由所有聚焦类构成,在java.util包中,包含三个重要接口:*    List列表:元素为单个对象,元素在列表中是有序.可重复*    Set集合:元素为单个对象,元素在集合中无序.不可重复*    ...

  6. Java集合整体框架

    Java中的集合类有List.Set.Map Collection的实现类:List.Set List的实现类:ArrayList.LinkedList.Vector Set的实现类:HashSet. ...

  7. Java 集合系列01之 总体框架

      Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表.Set ...

  8. Java集合系列:-----------01集合的整体框架

    内容来自:http://www.cnblogs.com/skywang12345/p/3308498.html Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映 ...

  9. Java 集合系列 01 总体框架

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

随机推荐

  1. python下的appium控制andriod按键

    今天查看视频的时候,发现不好控制关闭视频,于是就想控制手机的返回按键来达到返回的效果. 找到了一些关于按键的keycode,如下: KEYCODE_CALL 拨号键 5 KEYCODE_ENDCALL ...

  2. Ubuntu部署和体验Nexus3

    关于Nexus 如下图,在局域网部署了Nexus之后,可以缓存中央仓库的jar,开发者开发的二方库发布到Nexus上,局域网内的其他人也可以从Nexus下载这些二方库使用: 环境信息 本次实战是在Li ...

  3. matlab中reshape 重构数组

    来源:https://ww2.mathworks.cn/help/matlab/ref/reshape.html?searchHighlight=reshape&s_tid=doc_srcht ...

  4. P2832 行路难

    题面 Link 题目背景 小X来到了山区,领略山林之乐.在他乐以忘忧之时,他突然发现,开学迫在眉睫 题目描述 山区有 \(n\) 座山.山之间有 \(m\) 条羊肠小道,每条连接两座山,只能单向通过, ...

  5. Black-Lives-Matter-Resources

    下载 Black-Lives-Matter-ResourcesBlack-Lives-Matter-Resources 关于最近在美国发生的事件的资源列表 链接 描述 由于(可选) 插入链接 在这里插 ...

  6. Python 3.9 新特性速览

    国庆假期,Python 社区发布了 3.9 版本的第一个 stable release. 相比于 3.8,Python 3.9 新特性众多,但不少特性与大多数 Python"使用者" ...

  7. Python实现好友生日提醒

    Python实现好友生日提醒  

  8. python进程开启的两种方式

    一.进程 1.1.方式一 from multiprocessing import Process import time #方式一 def task(name): print(f"my na ...

  9. protoc-c 阅读笔记

    以前和山哥做过类似的,最近想起来,抽空又看了下 protoc-c. 山哥做的报文流向: rpc -> lydtree -> motree -> struct 涉及的细节很多 1) l ...

  10. Python解析yaml配置文件

    1.代码测试 import yaml fd = open('fileName.yaml', 'r') dict_tmp = yaml.load(fd) fd.close() print dict_tm ...