Java集合(类)框架
Posted YIYUYI
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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源码分析集合框架-Collections工具类-Arrays工具类
Java源码分析集合框架-Collections工具类-Arrays工具类
Java集合框架 Set接口实现类--TreeSet补充: Comparator接口