概述
Java基础——持有对象(数组与容器)
~数组
当你使用Java编程时,应用“优选容器而不是数组”。只有在已证明容器性能成为问题(并且切换到数组对性能有所帮助)时,你才应该将程序重构为使用数组。
初始化:
int[] a = {0,1,2,3,4};
数组中只包含一个成员变量 .length,来获取数据的大小(这是是数组分配的空间的大小,而不是数组中已赋值的元素的数量)。并且数组只能通过 [] 来访问数组中的元素。
将指向某个数组对象的引用赋给另一个数组对象,将只能使得二者指向堆中的同一个数组对象。
数组中构成的矩阵的每个向量都可以具有任意的长度(粗糙数组):
int[][][] a = new int[2][3][4];
数组与泛型不能很好的结合(不能实例化具有参数化类型的数组),但允许创建对这种数组的引用。
List<String>[] ls;
Arrays的常用方法
Arrays.fill():使用同一元素和同一对象填充各个位置。
String[] a = new String[6];
Arrays.fill(a, 3, 5, "Hi");
System.arraycopy():赋值数组
System.arraycopy(src, start, dist, start, length);
Arrays.equals()(deepEquals()用于多维数组):
- Comparable接口:描述了类的性质,需要在定义类时使用 implements Comparable 实现接口。
- Comparator接口:通常针对需要比较的类,新建一个实现了Comparator接口的比较类,并作为参数传入。
Arrays.sort():对数组排序
Arrays.binarySearch():在已排序的数组中查找元素
Arrays.asList():接受任意的序列或数组作为其参数,并将其转变为List容器
Arrays.toString():产生数组的String表示
Arrays.hashCode():产生数组的散列码
~容器
Collection
List:ArrayList,LinkedList
Set:HashSet(LinkedHashSet(按被添加的顺序保存对象)),TreeSet(比较结果的升序保存对象)
Queue:PriorityQueue
Map
HashMap(LinkedHashMap)
TreeMap
增加一组元素
- Collection.addAll():只能接受另一个Collection对象作为参数
- Collections.addAll(),Arrays.asList():能够接受可变参数列表,因此更灵活
~常用容器方法总结
Collection: add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray
Set extends Collections:
HashSet extends Set:
LinkedHashSet extends hashSet:
TreeSet extends Set: pollLast, navigableHeadSet, descendingIterator, lower, headSet, ceiling, pollFirst, subSet, navigableTailSet, comparator, first, floor, last, navigableSubSet, higher, tailSet
List extends Collection: listIterator, indexOf, get, subList, set, lastIndexOf
ArrayList extends List: ensureCapacity, trimToSize
LinkedList extends List: pollLast, offer, descendingIterator, addFirst, peekLast, removeFirst, peekFirst, removeLast, getLast, pollFirst, pop, poll, addLast, removeFirstOccurrence, getFirst, element, peek, offerLast, push, offerFirst, removeLastOccurence
Queue extends Collection: offer, element, peek, poll
PriorityQueue extends Queue: comparator
Map: clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, size, values
HashMap extends Map:
LinkedHashMap extends HashMap:
SortedMap extends Map: subMap, comparator, firstKey, lastKey, headMap, tailMap
TreeMap extends Map: descendingEntrySet, subMap, pollLastEntry, lastKey, floorEntry, lastEntry, lowerKey, navigableHeadMap, navigableTailMap, descendingKeySet, tailMap, ceilingEntry, higherKey, pollFirstEntry, comparator, firstKey, floorKey, higherEntry, firstEntry, navigableSubMap, headMap, lowerEntry, ceilingKey
~迭代器
Iterator:单向移动,iterator(), next(), hasNext(), remove(), nextIndex()
ListIterator:双向移动,previous(), hasPrevious(), previousIndex()
最后
以上就是端庄酸奶为你收集整理的Java基础——持有对象(数组与容器)Java基础——持有对象(数组与容器)的全部内容,希望文章能够帮你解决Java基础——持有对象(数组与容器)Java基础——持有对象(数组与容器)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复