Java-Arrays

这是不是有点跑偏题了?标题明明是说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的工具类。看了之后顿时有点感动对不对?

来瞧两眼:

094611_jT5E_1583879.jpg

094629_eEwl_1583879.jpg

094639_6WwC_1583879.jpg

Arrays基本的一些用法:http://mouselearnjava.iteye.com/blog/1985990

如果你觉得还不够,可以看一下apache commons的工具包,那里别有洞天。

http://commons.apache.org/proper/commons-collections/javadocs/api-release/index.html

说此题外话,由于墙内资源封锁,百度已经很难找到靠谱齐全的资源了。也有人可能因为英文不好,很少关注官方的文档。人家国外的孩子,从小就在好的、正确的引导下长到大,技术比我们强得真不是一丢丢。相反,墙内的孩子,如果要成长为一个程序员,还真的不容易(特别是依赖百度学习)。百度只会给你模棱两可,甚至错误的个人回答,从来不舍得在搜索结果推荐官方权威的信息。这样小孩很有可能在小时候就把错误的认识植入脑海,日后要纠正可就难了。我就是其中一个例子,我是工作一年后才发现自己很多想法在很久以前就错了。

 

转载于:https://my.oschina.net/zhouhaojie/blog/530259

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值