JavaSE学习_11_Arrays_foreach_可变参数
2016-09-07 11:58
225 查看
1、数组工具类Arrays
Arrays里面封装了操作数组的一些方发:
1)Arrays.fill();可以向数组里面填充数据(可以指定范围填充)
2)Arrays.sort();可以对数组进行排序,这里要注意当对引用类型(比如Person)进行排序的时候要有两种方式
comparable:在要比较对象的类要实现此接口(即在本类中定义比较的规则,比如按照年龄比较)
comparator:单独定义一个比较器来对对象的某个属性进行比较,和comparable原理一样,只是没有定义的对象所在类中;而是单独创建一个类来实现此接口(此类即为比较器)详细可查询Arrays里面的sort方法的API
3)Arrays.copyOf()和System.arrayof()。如果要拷贝整个数组元素就用前者,若要选取范围拷贝数组就用后者
4)...
!!!!常用方法查询API
2、增强for循环(foreach)
用来遍历容器(数组,list,set-及所有iterable的子类型)对象的元素;
遍历:把容器里所有的元素拿出来
语法:
for(元素的类型 当前遍历的元素变量:容器对象){
}
总结:foreach用来快速遍历容器对象的元素的值
注意:注意遍历数组需要用到下标那么不能使用增强for
3、可变参数
可变参数是方法定义参数时使用一种特殊类型,对应的数组类型;
定义可变参数:1)必须是方法参数列表的最后一个位置
语法:元素的类型... 参数名
可变参数就是一个数组类型!
使用参数,方法调用:
1)传入数组
2)传入数组的0到多个元素通过逗号分割
test(1, 2, 3, 4);
test(new int[]{1, 2, 3, 4});
public void test(int... params) {
}
4、String和StringBuilder的互相转换
他们怎么互相转换:
String转换成StringBuilder,StringBuilder sb = new StringBuilder(str);
StringBuilder转换成String,String str = sb.toString();
String字符串:固定(不可变)字符串,存储字符内存不能更改。
StringBuilder 字符串:可变字符串,存储字符内容可以更,线程不安全(只能在单线程使用),效率比StringBuffer高。
StringBuffer 字符串:可变字符串,存储字符内容可以更改,线程安全(单线程多线程都可以使用),效率比StringBuilder低。
StringBuilder和StringBuffer APi基本相同;
StringBuilder线程不安全,效率高;StringBuffer线程安全,效率低。
!!!!常用方法,查看API
注意:StringBuilder字符串连接的两种方式:
1)+,如果是比较简单(两个相连)的就用,+没连接一次就会创建一个新的StringBuilder对象,效率低!!
2)append,始终只有一个对象,效率高!!
Arrays里面封装了操作数组的一些方发:
1)Arrays.fill();可以向数组里面填充数据(可以指定范围填充)
2)Arrays.sort();可以对数组进行排序,这里要注意当对引用类型(比如Person)进行排序的时候要有两种方式
comparable:在要比较对象的类要实现此接口(即在本类中定义比较的规则,比如按照年龄比较)
comparator:单独定义一个比较器来对对象的某个属性进行比较,和comparable原理一样,只是没有定义的对象所在类中;而是单独创建一个类来实现此接口(此类即为比较器)详细可查询Arrays里面的sort方法的API
3)Arrays.copyOf()和System.arrayof()。如果要拷贝整个数组元素就用前者,若要选取范围拷贝数组就用后者
4)...
!!!!常用方法查询API
2、增强for循环(foreach)
用来遍历容器(数组,list,set-及所有iterable的子类型)对象的元素;
遍历:把容器里所有的元素拿出来
语法:
for(元素的类型 当前遍历的元素变量:容器对象){
}
总结:foreach用来快速遍历容器对象的元素的值
注意:注意遍历数组需要用到下标那么不能使用增强for
3、可变参数
可变参数是方法定义参数时使用一种特殊类型,对应的数组类型;
定义可变参数:1)必须是方法参数列表的最后一个位置
语法:元素的类型... 参数名
可变参数就是一个数组类型!
使用参数,方法调用:
1)传入数组
2)传入数组的0到多个元素通过逗号分割
test(1, 2, 3, 4);
test(new int[]{1, 2, 3, 4});
public void test(int... params) {
}
4、String和StringBuilder的互相转换
他们怎么互相转换:
String转换成StringBuilder,StringBuilder sb = new StringBuilder(str);
StringBuilder转换成String,String str = sb.toString();
String字符串:固定(不可变)字符串,存储字符内存不能更改。
StringBuilder 字符串:可变字符串,存储字符内容可以更,线程不安全(只能在单线程使用),效率比StringBuffer高。
StringBuffer 字符串:可变字符串,存储字符内容可以更改,线程安全(单线程多线程都可以使用),效率比StringBuilder低。
StringBuilder和StringBuffer APi基本相同;
StringBuilder线程不安全,效率高;StringBuffer线程安全,效率低。
!!!!常用方法,查看API
注意:StringBuilder字符串连接的两种方式:
1)+,如果是比较简单(两个相连)的就用,+没连接一次就会创建一个新的StringBuilder对象,效率低!!
2)append,始终只有一个对象,效率高!!
相关文章推荐
- JavaSE 学习参考:方法的可变参数
- 我的java学习笔记(11)关于装箱、参数可变方法和枚举类型
- JAVA基础 day17 Collections工具类和Arrays工具类的使用 静态导入和可变参数的学习
- Java基础第十七天学习日记_Collections和Arrays的常用方法、高级for循环、可变参数、静态导入
- Java学习日记(九)Collection、泛型、Map集合、Collections&Arrays、增强for语句、可变参数、静态导入
- 黑马程序员_学习笔记:11) Jdk5.0新特性:增强for循环、可变参数(...)、静态导入、枚举:关键字 enum、自动拆装箱、泛型
- JavaSE 学习参考:方法的可变参数
- JAVA基础学习之 Map集合、集合框架工具类Collections,Arrays、可变参数、List和Set集合框架什么时候使用等(4)
- java新特性——对数组的支持(可变参数、foreach)
- CSDN C/C++电子杂志第一期 之 可变参数学习笔记
- java学习笔记:声明方法时加入可变参数
- 可变参数学习笔记
- 新特性对数组的支持(可变参数的使用、foreach输出的使用)
- 可变参数(...)学习笔记
- 今天学习了关于C++ 中可变参数个数函数的使用!
- 黑马程序员_学习笔记7可变参数的应用及1.5增强for的联合使用以及反射的总结
- .Net学习难点讨论系列11 - foreach与迭代器
- c语言可变参数学习笔记
- 11、可变长参数,注释为自引用说明
- 黑马程序员-可变参数和foreach输出及泛型技术