这是不是有点跑偏题了?标题明明是说Arrays的嘛。不急!
数组的创建:
dataType[] arrayRefVar = new dataType[arraySize]; //如果你一开始不确认数据内容,一定要指定类型与长度
OR
dataType[] arrayRefVar = {value0, value1, ..., valuek};// 如果你一开始就确认值,直接初始化也很好呀。
那么有了数组对象之后呢?它长什么样子啊?
注意数组下标和长度。
public class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
//输出数组元素
for (int i = 0; i < myList.length; i++) {
System.out.println(myList[i] + " ");
}
// 求和
double total = 0;
for (int i = 0; i < myList.length; i++) {
total += myList[i];
}
System.out.println("Total is " + total);
// 找到最大的那个
double max = myList[0];
for (int i = 1; i < myList.length; i++) {
if (myList[i] > max) max = myList[i];
}
System.out.println("Max is " + max);
}
}
package sf;
public class Array {
private String[] arr;
private int index = 0;
public Array(int max) {
arr = new String[max];
}
private void expandCapacity() {
String[] tempArr = new String[index * 2];
System.arraycopy(arr, 0, tempArr, 0, index);
arr = tempArr;
}
public void insert(String element) {
int size = arr.length;
if (index >= size) {
expandCapacity();
}
arr[index] = element;
index++;
}
public boolean delete(String target) {
int x = -1;
if ((x = contains(target)) != -1) {
for (int i = x; i < index - 1; i++) {
arr[i] = arr[i + 1];
}
index--;
return true;
}
return false;
}
public int contains(String target) {
int x = -1;
for (int i = 0; i < index; i++) {
if (arr[i].equals(target)) {
x = i;
return x;
}
}
return x;
}
public void show() {
for (int i = 0; i < index; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
System.out.println("array size is : " + arr.length);
}
public static void main(String[] args) {
Array arr = new Array(3);
arr.insert("1");
arr.insert("2");
arr.insert("3");
arr.show();
arr.insert("a");
arr.show();
arr.insert("b");
arr.insert("c");
System.out.println(arr.contains("c"));
arr.delete("c");
arr.show();
}
}
怎么样?看起来not bad? 可是,有没有想过,数组这么重要,但是操作起来真心太不容易了。如上面的demo,随便往数组中插入一个元素,要写那么多代码,不人道啊。大神为我们考虑了这一点,在util包中提供了一个Arrays的工具类。看了之后顿时有点感动对不对?
来瞧两眼:
Arrays基本的一些用法:http://mouselearnjava.iteye.com/blog/1985990
如果你觉得还不够,可以看一下apache commons的工具包,那里别有洞天。
http://commons.apache.org/proper/commons-collections/javadocs/api-release/index.html
说此题外话,由于墙内资源封锁,百度已经很难找到靠谱齐全的资源了。也有人可能因为英文不好,很少关注官方的文档。人家国外的孩子,从小就在好的、正确的引导下长到大,技术比我们强得真不是一丢丢。相反,墙内的孩子,如果要成长为一个程序员,还真的不容易(特别是依赖百度学习)。百度只会给你模棱两可,甚至错误的个人回答,从来不舍得在搜索结果推荐官方权威的信息。这样小孩很有可能在小时候就把错误的认识植入脑海,日后要纠正可就难了。我就是其中一个例子,我是工作一年后才发现自己很多想法在很久以前就错了。