黑马程序员--Collections工具类
来源:互联网 发布:淘宝网网购流程图 编辑:程序博客网 时间:2024/05/21 08:43
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
Collections工具类
面试题:Collections和Collection的区别?
特点:
Collections里面的方法都是静态的方法(Static)
对集合进行自然排序方法:
Collection.sort(集合);
返回集合中最大的对象:
Collection.max();
Collection.max(长度);返回集合中长度最大的那个对象
用binarySearch对集合进行二分查找:
Collection.binarySearch();
只要用binarySearch必须是有序集合
返回:如果搜索键包含在列表中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。插入点 被定义为将键插入列表的那一点:即第一个大于此键的元素索引,如果列表中的所有元素都小于指定的键,则为 list.size()。注意,这保证了当且仅当此键被找到时,返回的值将 >= 0。
fill(List<? super T> list,T obj)使用指定元素替换指定列表中的所有元素
fill方法可以将list集合中所有元素替换成指定元素
练习:将集合众部分元素替换成指定元素?
replaceAll(List<T> list,T oldVal,T newVal)使用另一个值替换列表中出现的所有某一指定值
Collection.replaceAll();
反转(头变尾,尾变头):
Collections.reverse(集合);
reverseOrder
返回一个比较器,它强行逆转指定比较器的顺序。
synchronizedList(List<T> list)
返回指定列表支持的同步(线程安全的)列表
synchronizedMap(Map<K,V> m)
返回指定映射支持的同步(线程安全的)映射
synchronizedSet(Set<T> s)
返回指定set支持的同步(线程安全的)set
Collections.sort(list,脚标1,脚标2)
返回,将脚标1,和脚标2的元素调换位置
Collections.shuffle()
把集合中的元素,从新按照随机的方式,进行排放,
例如:扑克54章,可以用此方法模拟洗牌,因为每次都是随机的将牌进行排序
或,色子,模拟支色子;
Arrays:用户操作数组的工具类
里面都是静态方法。
asList:将输入变成list集合
String[] arr={"aaa","bb","c"};
//把数组变成list集合有什么好处?
可以使用集合的思想和方法,来操作数组中的元素。
注意:将数组变成集合,不可以使用集合的增删方法。因为数组的长度是固定的
可以用contains. get, indexOf(),subList()
List<String> ls=Arrays.asList(arr);
判断是否存在某元素
System.out.print("contains"+ls.contains("cc"))
int[] nums={2,3,5};
List<int[]> li=Arrays.asList(nums);
如果数组中的元素都是对象。那么变成集合时,数组中德元素就直接转成集合中德元素
如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在
集合变数组:
Collection接口中的toArray(); 返回:Object[]
返回包含此collection种所有元素的数组
另一个toArray(I[] a); 返回<T> T[]
返回包含此collection中所有元素的数组,返回数组的运行时类型与指定数组的运行时类型相同
指定类型的数组要定义多长呢?
当指定类型的数组长度小于了集合的size,那么该方法内部会创建一个新的数组,长度为集合的size。
当指定类型的数组长度大于了集合的size,就不会新创建了数组,而是使用传递进来的数组。
所以创建一个刚刚好的数组最优。
2.为什么要将集合变数组?
为了限定对元素的操作。不需要进行增删了。
集合(增强for循环)
高级for循环:就是foreach循环
格式:for(类型 变量名: 被遍历的集合())
对集合进行遍历,只能获取元素,但不能对集合进行操作
迭代器:除了遍历,还可以进行remove集合中的动作
如果使用ListIterator,还可以在遍历过程中对集合进行增删改查的操作
支持迭代器的集合,都支持高级for循环
传统for循环和高级for有什么区别呢?
高级for有一个局限性,必须有被遍历的目标,
建议在遍历数组的时候,还是希望
集合(可变参数)
就是数组参数的简写形式,不用每次都手动的建立数组对象,只要将操作的元素作为参数传递即可
隐式将这些参数封装成了数组。
方法的可变参数在使用时注意:可变参数一定要定义在参数列表的最后面
show("haha",2,3,5)
public static void show(String str,int...arr) 可以,意义,先将“haha”传入数组,将后面的数字全部传入到数组当中去
public static void show(int...arr,String str) 就不可以,因为它会将所有元素传入到数组当中,2,3,5,"haha"但是haha是字符串不能传入到int 数组中
集合(静态导入)
import static java.util.Arrays.*;//导入的时Arrays这个类中的所有静态成员
当类名重名时,需要指定具体的报名。
当方法重名时,需要指定具备所属的对象或者类
import static java.lang.System.*;//倒入了Sytem类中所有静态成员
当用到Collections中的方法时,每次都要打Collections.只要倒入import java.util.Arrays.*;就可以
因为Collections里面的方法都是静态方法倒入包之后直接用就可以了
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
- 黑马程序员--Collections工具类
- 黑马程序员---Collections工具类
- 黑马程序员-Collections和Arrays工具类
- 【黑马程序员】集合工具类:Collections
- 黑马程序员-工具类Collections&Arrays
- 黑马程序员---Java中的Collections工具类
- 黑马程序员--集合工具Collections
- 黑马程序员_Collection类集框架和Collections工具类
- 黑马程序员——Set实现类、Collections工具类
- 黑马程序员——day17工具类Collections
- 黑马程序员—JAVA集合工具类Collections
- 奋斗黑马程序员----Java之Collections工具类
- 黑马程序员-集合概念与工具类Collections
- 黑马程序员_Map集合和Collections工具类
- 黑马程序员—Java工具类(Collections、Arrays)
- 黑马程序员_JAVA集合框架的工具类:Collections、Arrays
- 黑马程序员-day17工具类Collections和Arrays
- 黑马程序员--泛型、集合框架工具类:collections和Arrays
- 七步入门CMake之第三步(安装和测试)
- 如何让classmethod只允许使用用类对象来调用
- DirectShow初探
- 入职之初——做事的专业精神
- windows下Bat命令学习
- 黑马程序员--Collections工具类
- SQL Server CLR全攻略
- apk文件的反编译
- Codeforces Round #198 (Div. 2) C. Tourist Problem - 找规律
- 摆脱垃圾服务商 选择微空间免费空间
- C++ vector容器类型
- oracle命令建立主键外键
- UVA 531 - Compromise(dp + LCS打印路径)
- Turbo C 2.0 图形编程出现错误 BGI Error