Collection:

  Collection是集合类的顶级接口,提供了对集合对象进行基本操作的通用接口方法。Collection接口的意义是为各种具体的集合提供了最大化

的统一操作方式,其直接继承接口有List与Set。

public interface Collection<E> extends Iterable<E> {
int size();  //集合的容量 boolean isEmpty();  //是否为空 boolean contains(Object var1);  //是否包含某个元素 Iterator<E> iterator();  //返回迭代器,进行数据迭代 Object[] toArray();  //转换为Object数组 <T> T[] toArray(T[] var1);  //将list转换为所需要类型的数组 boolean add(E var1);  //添加元素 boolean remove(Object var1);  //去除元素 boolean containsAll(Collection<?> var1);  //是否包含某个集合内所有的元素 boolean addAll(Collection<? extends E> var1);  //添加一个集合 boolean removeAll(Collection<?> var1);  //删除一个集合的元素 boolean retainAll(Collection<?> var1);  //取交集 void clear();  //清空集合 boolean equals(Object var1);  //比较 int hashCode();  //hash码 }
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(2);
list.add(1);
list.add(3);
System.out.println("list size: " + list.size());
System.out.println("list isEmpty: " + list.isEmpty());
System.out.println("list iscontains: " + list.contains(1));
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println("list.iterator(): " + iterator.next());
}
Object[] integers = list.toArray();
for (Object o : integers) {
System.out.println("list.toArray(): " + o);
}
list.add(1, 7);
list.remove(1);
System.out.println(list.containsAll(Arrays.asList(2, 1, 3)));
System.out.println(list.toString());
System.out.println(list.retainAll(Arrays.asList(2, 11, 13)));
System.out.println("交集:" + list.toString());
list.clear();
System.out.println("清空集合:" + list.toString());
}

结果:

list size: 3
list isEmpty: false
list iscontains: true
list.iterator(): 2
list.iterator(): 1
list.iterator(): 3
list.toArray(): 2
list.toArray(): 1
list.toArray(): 3
true
[2, 1, 3]
true
交集:[2] 清空集合:[]

Collections:

Collections是集合的工具类,包含很多静态方法,用于对集合的各种操作

public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(2);
list.add(1);
list.add(3);
list.add(5);
list.add(4);
System.out.println("排序前:" + list);
Collections.sort(list);
System.out.println("排序后:" + list);
Collections.shuffle(list);
System.out.println("打乱排序:" + list);
Collections.reverse(list);
System.out.println("倒序排序:" + list);
List<Integer> list1 = Arrays.asList(12, 1, 5, 8, 9, 6, 7);
Collections.copy(list1, list);
System.out.println("复制集合list1的元素:" + list1);
System.out.println("集合最大值:" + Collections.max(list));
System.out.println("集合最小值:" + Collections.min(list));
Collections.fill(list, 100);
System.out.println("list中元素替换成:" + list);
}

结果:

排序前:[2, 1, 3, 5, 4]
排序后:[1, 2, 3, 4, 5]
打乱排序:[4, 3, 5, 1, 2]
倒序排序:[2, 1, 5, 3, 4]
复制集合list1的元素:[2, 1, 5, 3, 4, 6, 7]
集合最大值:5
集合最小值:1
list中元素替换成:[100, 100, 100, 100, 100]

常用方法:

sort():将集合内元素升序进行排序,被排序的集合必须实现Comparable接口,否则会出现异常

shuffle(): 打乱集合内元素可能存在的排序

Reverse(): 将集合内元素按倒序进行排序,不是降序,这个要注意

copy(): Collections.copy(targetList,sourceList),targetList至少与sourceList一样长,否则会报异常。如果更长,targetList中剩余元素

不受影响

min(): 集合中最小值

max(): 集合中最大值

Fill(): 将集合的元素全部替换为指定元素

Arrays:

Arrays是数组的工具类,包含很多静态方法,用于对集合的各种操作

public static void main(String[] args) {
Integer[] integers = new Integer[] {1, 3, 9, 2, 4, 88};
System.out.print("排序前:");
for (Integer integer : integers) {
System.out.print(integer + " ");
}
Arrays.sort(integers);
System.out.println("");
System.out.print("排序后:");
for (Integer integer : integers) {
System.out.print(integer + " ");
}
Integer[] integers1 = new Integer[] {1, 3, 9, 2, 4, 88};
Arrays.sort(integers1, 0, 4);
System.out.println("");
System.out.print("0-4之间进行排序后:");
for (Integer integer : integers1) {
System.out.print(integer + " ");
}
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
String s = Arrays.toString(integers);
System.out.println("");
System.out.println("数组integers转换成String:" + s);
String s1 = Arrays.deepToString(integers);
System.out.println("数组integers转换成String:" + s1); Integer[][] integers2 = new Integer[][] {{1, 3, 9},{ 2, 4, 88}};
String s2 = Arrays.toString(integers2);
System.out.println("数组integers转换成String:" + s2);
String s3 = Arrays.deepToString(integers2);
System.out.println("数组integers转换成String:" + s3); System.out.println("元素9的位置:" + Arrays.binarySearch(integers, 9));
Integer[] integers3 = Arrays.copyOf(integers, 12);
System.out.print("复制后的集合元素:");
for (Integer integer : integers3) {
System.out.print(integer + " ");
}
Arrays.fill(integers, 2);
System.out.print("将集合元素全部替换成2:");
for (Integer integer : integers) {
System.out.print(integer + " ");
}
Integer[] integers4 = Arrays.copyOfRange(integers3, 0, 4);
System.out.println("");
System.out.print("只复制0-4区间的集合元素:");
for (Integer integer : integers4) {
System.out.print(integer + " ");
}
}

结果:

排序前:1 3 9 2 4 88
排序后:1 2 3 4 9 88
0-4之间进行排序后:1 2 3 9 4 88
数组integers转换成String:[1, 2, 3, 4, 9, 88]
数组integers转换成String:[1, 2, 3, 4, 9, 88]
数组integers转换成String:[[Ljava.lang.Integer;@1be6f5c3, [Ljava.lang.Integer;@6b884d57]
数组integers转换成String:[[1, 3, 9], [2, 4, 88]]
元素9的位置:4
复制后的集合元素:1 2 3 4 9 88 null null null null null null 将集合元素全部替换成2:2 2 2 2 2 2
只复制0-4区间的集合元素:1 2 3 4

sort(T[]):将数组内元素升序进行排序

sort(T[], fromIndex, toIndex):将数组内部分元素区间升序进行排序,从fromIndex到toIndex,左开右闭

toString():将一维数组转为String,无法将多维数组元素转换成String

deepToString():将多维数组转为String,也可以转换一维数组

copyof(T[], newLength):复制数组元素到新的数组,重新定义新数组的长度

copyOfRange(T[], from, to):复制部分数组元素到新的数组,重新定义新数组的长度to-from

fill(): 将数组的元素全部替换为指定元素

Java集合(三)--Collection、Collections和Arrays的更多相关文章

  1. Java集合框架Collection

    转自:http://www.cdtarena.com/javapx/201306/8891.html [plain] view plaincopyprint?01.在 Java2中,有一套设计优良的接 ...

  2. Java集合框架GS Collections具体解释

    Java集合框架GS Collections具体解释 作者:chszs.未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs GS Collec ...

  3. Java集合之Collection

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

  4. -1-3 java集合框架基础 java集合体系结构 Collection 常用java集合框架 如何选择集合 迭代器 泛型 通配符概念 Properties 集合 迭代器

    集合又称之为容器存储对象的一种方式 •数组虽然也可以存储对象,但长度是固定的:显然需要可变长度的容器 集合和数组的区别?                 A:长度区别                  ...

  5. Java集合之Collection与之子类回顾

    Java学习这么久,打算这几天回顾下java的基本知识点,首先是集合. 一.常用集合类关系图 Collection |___List 有序,可重复 |___ArrayList  底层数据结构是数组,增 ...

  6. 《Java基础知识》Java集合(Collection)

    作为一个Developer,Java集合类是我们在工作中运用最多的.最频繁的类.相比于数组(Array)来说,集合类的长度可变,更加适合于现代开发需求: Java集合就像一个容器,可以存储任何类型的数 ...

  7. java集合 之 Collection和Iterator接口

    Collection是List,Queue和Set接口的父接口,该接口里定义的方法即可用于操作Set集合,也可以用于List和Queue集合.Collection接口里定义了如下操作元素的方法. bo ...

  8. Java集合(Collection)综述

    1.集合简介 数学定义:一般地,我们把研究对象统称为元素.把一些元素组成的总体叫做集合. java集合定义:集合就是一个放数据的容器,准确的说是放数据对象引用的容器. java中通用集合类存放于jav ...

  9. java集合框架collection(6)继承结构图

    根据<java编程思想>里面的说法,java集合又叫容器,按照单槽和双槽分为两类,Collection和Map,这两个都是接口. 一.Collection Collection下面又分了三 ...

随机推荐

  1. 超线程技术——超线程技术让(P4)处理器增加5%的裸晶面积,就可以换来15%~30%的效能提升,本质单核模拟双核!和异步编程的思想无异。

    超线程是Intel 所研发的一种技术,于2002年发布.超线程的英文是HT技术,全名为Hyper-Threading,中文又名超线程.超线程技术原先只应用于Intel Xeon处理器中,当时称为Sup ...

  2. 并不对劲的bzoj5020:loj2289:p4546:[THUWC2017]在美妙的数学王国中畅游

    题目大意 有一个n(\(n\leq 10^5\))个点的森林,每个点\(u\)上有个函数\(f_u(x)\),是形如\(ax+b\)或\(e^{ax+b}\)或\(sin(ax+b)\)的函数,保证当 ...

  3. 腾讯API

    相关文档: API列表  腾讯开放平台联调工具集  公共返回码说明 SDK下载

  4. Vue解决安卓4.4不兼容的问题

    1.npm安装 npm install babel-polyfillnpm install es6-promise package.json中会出现 "babel-polyfill" ...

  5. (转)Javascript中console.log()用法

    原文地址应该是这个吧:http://my.oschina.net/junn/blog/142728 注意:必须要提前打开IE的开发者模式才能看到输入 否则就会报错. IE下可以这个判断: if (co ...

  6. P1971 [NOI2011]兔兔与蛋蛋游戏

    传送门 思路比较迷--题解在这里 //minamoto #include<bits/stdc++.h> #define R register #define fp(i,a,b) for(R ...

  7. SPOJ GSS3 线段树系列1

    SPOJ GSS系列真是有毒啊! 立志刷完,把线段树搞完! 来自lydrainbowcat线段树上的一道例题.(所以解法参考了lyd老师) 题意翻译 n 个数, q 次操作 操作0 x y把 Ax 修 ...

  8. Kerberos原理和基础小结

    此篇文章仅做Kerberos的基本原理和基本使用做说明,本人对Kerberos了解有限,也是通过大量英文文档中翻译过来, 加上自己对Kerberos的理解所写,本人英文太菜,看文档看的头昏眼花若有写的 ...

  9. centos mysql数据库忘记密码修改

    1.vim /etc/my.cnf 2.在[mysqld]中添加 skip-grant-tables 例如: [mysqld]skip-grant-tablesdatadir=/var/lib/mys ...

  10. 进击的Python【第七章】:python各种类,反射,异常处理和socket基础

    Python的高级应用(三)面向对象编程进阶 本章学习要点: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 一.面向对象高级语法部分 静态方法 ...