纸上得来终觉浅
1.Java容器,目的是存储对象,称为:Collection,分类包括List,Set,Queue,Map;每个分类都有几个实现版本;详细如下图所示:
除此之外还涉及到Collections和Arrays这两个辅助工具类,以及Comparable和Comparator这两个用于比较的接口。后面分别对它们的使用总结成笔记,这篇文章不讲容器,先讲述数组和操作数组的工具类Arrays;
2.Arrays
数组与容器唯一的优势是存取效率比较高(现在认为基本没什么区别),缺陷是数组的大小是固定的; 另外有一个工具类Arrays支持对数组的操作,也就是本篇所讲:
package roadArchitectWeb.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; public class Test1{ public static void main(String[] args) { Integer[] a = {1,2,3,4,5,6,7,8,9,10}; Integer[] b = {10,9,8,7,6,5,4,3,2,1}; /*equals*/ System.out.println("Arrays.equals(a, b):"+Arrays.equals(a, b)); /*sort排序*/ Arrays.sort(b,new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o1.compareTo(o2); } }); System.out.println("Arrays.sort:"+Arrays.toString(b)); /*fill*/ Arrays.fill(a,30); System.out.println("Arrays.fill:"+Arrays.toString(a)); /*Arrays.binarySearch()*/ System.out.println("Arrays.binarySearch()+"+Arrays.binarySearch(b,5)); /*Arrays.hashCode()*/ System.out.println("Arrays.hashCode():"+Arrays.hashCode(a)); /*Arrays.asList*/ ArrayList<Integer> arrayList = new ArrayList<Integer>(Arrays.asList(b)); System.out.println("Arrays.asList:"+arrayList); } }结果如下:
Arrays.equals(a, b):false Arrays.sort:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Arrays.fill:[30, 30, 30, 30, 30, 30, 30, 30, 30, 30] Arrays.binarySearch()+4 Arrays.hashCode():701064577 Arrays.asList:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]