Thinking in Java 学习笔记1 数组
来源:互联网 发布:健身书籍知乎 编辑:程序博客网 时间:2024/06/05 01:18
1.数组的概述
1.在Java中,对这种尺寸固定的低级数组提供了适度的支持,但是这种数组强调的是性能而不是灵活。
2.在用Java编程时,应该优先选用容器而不是数组,除非证明这个程序性能上存在问题,而一般情况下,性能出现问题的程序我们一般都不会知道这个性能问题在哪里。
3.所以可以说,数组除了一般人用不到的性能之外一无是处,以后尽可能的使用容器。“数组最初有关效率的观点总是引人深入,但是随着时间的推移,我们看到了与这种思想背道而驰,向着使用像容器这类高级构件的方向的演化。另外,如果容器能够像某些语言一样内置于语言的内核中,那么编译器会得到更好的优化”。
2.数组的初始化
3.数组的特性
3.1数组的特殊性
3.2数组是第一级对象
3.3返回一个数组
假设写一个方法,返回值是一个数组
3.4多维数组
Java实际上没有多维数组,只有一维数组,而多维数组指的是“数组的数组”。
3.5数组和泛型
4.数组的应用功能
4.1数组复制
2 使用Object类的clone()方法, 这种方法最简单,得到原数组的一个副本。灵活形也最差。效率最差,尤其是在数组元素很大或者复制对象数组时。
3 使用Systems的arraycopy这种方法被告之速度最快,并且灵活性也较好,可以指定原数组名称、以及元素的开始位置、复制的元素的个数,目标数组名称、目标数组的位置。
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
src:源数组;srcPos:源数组要复制的起始位置;
dest:目的数组;destPos:目的数组放置的起始位置;length:复制的长度
4 Arrarys类的copyOf()方法与copyOfRange()方法可实现对数组的复制
int [] a={1,2,3};int [] b=Arrays.copyOf(a, a.length);int [] c=a.clone();int [] d={4,5,6,0,0,0};System.arraycopy(a, 0, d, 0, 3);for (int i : d) {System.out.println(i);
4.2数组填充
Arrays.fill(type[] a,type v)
Arrays.fill(c, 0);for (int i : c) {System.out.println(i);}
4.3数组排序
Arrays.sort(type[] a)
4.4数组查找
int i=Arrays.binarySearch(type[] a,type v)
int i=Arrays.binarySearch(type[] a,int start,int end,type v)
4.5数组比较
compareTo comparable接口
Arrays.equals(type[] a,type[] b)
4.6数组tostring
String string=Arrays.toString(a);
System.out.println(string);
这里的tostring是已经重写过的,不能与object.tostring生成的hashcode相对比
4.7数组hash码
a
- 要计算其哈希值的数组4.8数组aslist
List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
- Thinking in Java 学习笔记1 数组
- java学习笔记1-thinking in java
- thinking in java 学习笔记(1)
- Thinking in java 学习笔记(1)
- 《Thinking in java》 学习笔记(1)
- Thinking In Java学习笔记(1)
- 《Thinking in Java》学习笔记(1)
- Thinking In Java学习笔记
- Thinking in Java学习笔记
- thinking in java 学习笔记
- 《Thinking in java》学习笔记
- Thinking in Java学习笔记
- Thinking In Java学习笔记
- Thinking in java 笔记(一)---重载 数组
- 读thinking in java笔记(十五):数组
- Thinking in Java笔记1
- Thinking in Java笔记1
- Thinking in java 笔记1
- HDU
- MariaDB_installing,starting and stoping,configuring,logging in
- Android之px/dpi/dip/dp/density/DisplayMetrics和屏幕适配
- MariaDB_Basic SQL Debugging
- MariaDB_mysqladmin
- Thinking in Java 学习笔记1 数组
- HashMap和Hashtable的区别
- Java 基础【05】你的多继承纳?
- Eclipse_JD-Eclipse plugin
- unity3D序列化参数可以设置枚举的方法
- MariaDB_About the MariaDB Java Client
- 初学编程——编程练习
- MariaDB_Setting Character Sets and Collations
- DUBBO分布式服务框架与SpringMVC+Zookeeper实现服务提供和消费