Java集合(类)框架(一)

集合类均在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集合(类)框架(一)的更多相关文章
- Java集合(类)框架(二)
1.Set集合 1.1 HashSet集合 HashSet底层为哈希码 不是数组,因此没有下标的概念,也就不能根据下标来查询某个元素 存放元素无序,不可重复 1.1.1 声明 Set<Strin ...
- Java集合(类)框架(三)
1. Map集合 相较于List和Set集合而言,Map集合所储存的数据为双列行,数据是以key和value为一个单位进行存储的,如在建立一个学生Map的时候,其中的数据应为 学号-姓名(key-va ...
- Java 集合总体框架介绍
Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表.Set集合 ...
- Java集合--整体框架
Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表.Set集合 ...
- 《Java大学教程》—第17章 Java聚焦类框架
由所有聚焦类构成,在java.util包中,包含三个重要接口:* List列表:元素为单个对象,元素在列表中是有序.可重复* Set集合:元素为单个对象,元素在集合中无序.不可重复* ...
- Java集合整体框架
Java中的集合类有List.Set.Map Collection的实现类:List.Set List的实现类:ArrayList.LinkedList.Vector Set的实现类:HashSet. ...
- Java 集合系列01之 总体框架
Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表.Set ...
- Java集合系列:-----------01集合的整体框架
内容来自:http://www.cnblogs.com/skywang12345/p/3308498.html Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映 ...
- Java 集合系列 01 总体框架
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
随机推荐
- Ansys Student 2020R2中Fluent编译UDF简介
使用内建编译器 在Ansys Fluent中编译UDF一般都需要额外安装相应版本的Visual Studio编译器,VS的缺点是体量大,占空间,安装后还需要额外进行相关设置才能正常使用.而新版本的An ...
- sqlserver和oracle修改表结构
sqlserver和oracle修改表结构常用SQL Server:1.增加列 ALTER TABLE users ADD address varchar(30);2.删除列 ALTER TABL ...
- Java知识系统回顾整理01基础02面向对象02属性
一.根据实例给出"属性"的定义 一个英雄有姓名,血量,护甲等等状态 这些状态就叫做一个类的属性 二.属性的类型 属性的类型可以是基本类型,比如int整数,float 浮点数 也可以 ...
- Example Code for a TMP102 I2c Thermometer————Arduino
参考:https://playground.arduino.cc/Code/TMP102/ Example Code for a TMP102 I2c Thermometer I've fairly ...
- 安装、验证安装 Oracle Database XE 11gR2
操作系统:Windows 10 x64 第一节:下载 Oracle Database XE 11gR2 第二节:安装.验证安装 Oracle Database XE 11gR2 第三节:Oracle ...
- 《C++primerplus》第12章练习题
做一下倒数两题,都是在队列模拟的程序基础上做点修改测试. 5.找出平均等候时间为1分钟时,每小时到达的客户数为多少(试验时间不少于100小时). 指定队伍最大长度10人,模拟100小时.粗略估计答案在 ...
- Arduino的外部中断
Arduino的中断函数格式为attachInterrupt(interrput,function,mode). attachInterrupt函数用于设置外部中断,有3个参数,interrput表示 ...
- 使用MVC 5、Web API 2、KnockoutJS、Ninject和NUnit开发、架构和测试Web应用程序
做一名微软软件开发人员就像在国际煎饼屋订早餐一样.每道菜都有一堆煎饼,你必须从各种各样的煎饼和糖浆口味中选择.对于web应用程序,解决方案堆栈是一组软件子系统或组件,用于交付功能完整的解决方案(无论是 ...
- Kubernetes K8S之存储ConfigMap详解
K8S之存储ConfigMap概述与说明,并详解常用ConfigMap示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS ...
- 【传递闭包】HDU 2157 How many ways??
UPD:现在才发现本题是个传递闭包 题目内容 春天到了,HDU校园里开满了花,姹紫嫣红,非常美丽. 葱头是个爱花的人,看着校花校草竞相开放,漫步校园,心情也变得舒畅. 为了多看看这迷人的校园,葱头决定 ...