Java基础——持有对象(数组与容器)

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:ArrayListLinkedList

    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()


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值