構(gòu)造器必須是私有的 工具類(lèi)的特征是什么?
工具類(lèi)特征:
構(gòu)造器必須是私有的,工具類(lèi)一般不需要初始化,可以直接使用;工具類(lèi)的方法必須是被static final方法修飾,保證方法不可變;不要在工具類(lèi)方法中對(duì)共享變量有修改的操作,如果一定要有,必須加鎖保證線程安全;工具類(lèi)的所有方法都沒(méi)有線程安全問(wèn)題;
(資料圖片僅供參考)
一、Arrays
Arrays主要提供了對(duì)數(shù)組的高效操作,包括排序、查找、填充、拷貝、相等判斷等操作;
1、sort(int[] a)
1.1、JDK1.6
1.1.1、源碼
// int類(lèi)型數(shù)組排序public static void sort(int[] a) {sort1(a, 0, a.length);}private static void sort1(int x[], int off, int len) {// Insertion sort on smallest arrays if (len < 7) {for (int i = off; i < len + off; i++) for (int j = i; j > off && x[j - 1] > x[j]; j--) swap(x, j, j - 1); return; } // Choose a partition element, v int m = off + (len >> 1); // Small arrays, middle element if (len > 7) {int l = off; int n = off + len - 1; if (len > 40) {// Big arrays, pseudomedian of 9 int s = len / 8; l = med3(x, l, l + s, l + 2 * s); m = med3(x, m - s, m, m + s); n = med3(x, n - 2 * s, n - s, n); } m = med3(x, l, m, n); // Mid-size, med of 3 } int v = x[m]; // Establish Invariant: v* (v)* v* int a = off, b = a, c = off + len - 1, d = c; while (true) {while (b <= c && x[b] <= if="" while="" c="">= b && x[c] >= v) {if (x[c] == v) swap(x, c, d--); c--; } if (b > c) break; swap(x, b++, c--); } // Swap partition elements back to middle int s, n = off + len; s = Math.min(a - off, b - a); vecswap(x, off, b - s, s); s = Math.min(d - c, n - d - 1); vecswap(x, b, n - s, s); // Recursively sort non-partition-elements if ((s = b - a) > 1) sort1(x, off, s); if ((s = d - c) > 1) sort1(x, n - s, s);}/** * Swaps x[a] with x[b]. */private static void swap(int x[], int a, int b) {int t = x[a]; x[a] = x[b]; x[b] = t;}/** * Swaps x[a .. (a+n-1)] with x[b .. (b+n-1)]. */private static void vecswap(int x[], int a, int b, int n) {for (int i = 0; i < n; i++, a++, b++) swap(x, a, b);}/** * Returns the index of the median of the three indexed integers. */private static int med3(int x[], int a, int b, int c) {return (x[a] < x[b] ? (x[b] < x[c] ? b : x[a] < x[c] ? c : a) : (x[b] > x[c] ? b : x[a] > x[c] ? c : a));}
1.1.2、分析
(1)數(shù)組長(zhǎng)度小于7,那么排序時(shí)基于基本的插入排序算法(2)數(shù)組長(zhǎng)度大于7,那么在使用的優(yōu)化后的快速排序,對(duì)應(yīng)數(shù)組長(zhǎng)度在7和40之間的數(shù)組,取的切分元素相對(duì)來(lái)說(shuō)簡(jiǎn)單點(diǎn)
1.2、JDK1.7
1.2.1、源碼:
public static void sort(int[] a) {DualPivotQuicksort.sort(a);}// 下面方法來(lái)自:java.util.DualPivotQuicksort#sort(int[])public static void sort(int[] a) {sort(a, 0, a.length - 1);}/** * If the length of an array to be sorted is less than this * constant, Quicksort is used in preference to merge sort. */private static final int QUICKSORT_THRESHOLD = 286;/** * The maximum number of runs in merge sort. */private static final int MAX_RUN_COUNT = 67;/** * The maximum length of run in merge sort. */private static final int MAX_RUN_LENGTH = 33;public static void sort(int[] a, int left, int right) {// Use Quicksort on small arrays if (right - left < QUICKSORT_THRESHOLD) {sort(a, left, right, true); return; } /* * Index run[i] is the start of i-th run * (ascending or descending sequence). */ int[] run = new int[MAX_RUN_COUNT + 1]; int count = 0; run[0] = left; // Check if the array is nearly sorted for (int k = left; k < right; run[count] = k) {if (a[k] < a[k + 1]) {// ascending while (++k <= right && a[k - 1] <= else="" if=""> a[k + 1]) {// descending while (++k < = right="" k="" -="">= a[k]); for (int lo = run[count] - 1, hi = k; ++lo < --hi; ) {int t = a[lo]; a[lo] = a[hi]; a[hi] = t; } } else {// equal for (int m = MAX_RUN_LENGTH; ++k <= right && a[k - 1] == a[k]; ) {if (--m == 0) {sort(a, left, right, true); return; } } } /* * The array is not highly structured, * use Quicksort instead of merge sort. */ if (++count == MAX_RUN_COUNT) {sort(a, left, right, true); return; } } // Check special cases if (run[count] == right++) {// The last run contains one element run[++count] = right; } else if (count == 1) {// The array is already sorted return; } /* * Create temporary array, which is used for merging. * Implementation note: variable "right" is increased by 1. */ int[] b; byte odd = 0; for (int n = 1; (n <<= 1) < count; odd ^= 1); if (odd == 0) {b = a; a = new int[b.length]; for (int i = left - 1; ++i < right; a[i] = b[i]); } else {b = new int[a.length]; } // Merging for (int last; count > 1; count = last) {for (int k = (last = 0) + 2; k <= count; k += 2) {int hi = run[k], mi = run[k - 1]; for (int i = run[k - 2], p = i, q = mi; i < hi; ++i) {if (q >= hi || p < mi && a[p] <= else="" if="" count="" for="" int="" i="right," lo="run[count" -="" --i="">= lo; b[i] = a[i] ); run[++last] = right; } int[] t = a; a = b; b = t; }}/** * Sorts the specified range of the array by Dual-Pivot Quicksort. * * @param a the array to be sorted * @param left the index of the first element, inclusive, to be sorted * @param right the index of the last element, inclusive, to be sorted * @param leftmost indicates if this part is the leftmost in the range */private static void sort(int[] a, int left, int right, boolean leftmost){}
在JDK7中,排序使用的雙軸快速排序,其要比傳統(tǒng)的單軸排序要快
雙軸快速排序:如果數(shù)組的長(zhǎng)度小于QUICKSORT_THRESHOLD的話就會(huì)使用這個(gè)雙軸快速排序,而這個(gè)值是286
if (right - left < QUICKSORT_THRESHOLD) {sort(a, left, right, true); return;}
1.3、JDK1.8
1.3.1、源碼
public static void sort(int[] a) {DualPivotQuicksort.sort(a, 0, a.length - 1, null, 0, 0);}
DualPivotQuicksort.sort方法
private static final int QUICKSORT_THRESHOLD = 286;static void sort(int[] a, int left, int right, int[] work, int workBase, int workLen) {// Use Quicksort on small arrays,QUICKSORT_THRESHOLD為286,當(dāng)要排序區(qū)間小于286時(shí),發(fā)現(xiàn)調(diào)用了本類(lèi)的重載sort方法 if (right - left < QUICKSORT_THRESHOLD) {sort(a, left, right, true); return; } /** * run[i] 意味著第i個(gè)有序數(shù)列開(kāi)始的位置,(升序或者降序) **/ int[] run =new int[MAX_RUN_COUNT + 1]; int count=0; run[0] = left; // 檢查數(shù)組是不是已經(jīng)接近有序狀態(tài) for(int k = left; k < right; run[count] = k) {if(a[k] < a[k + 1]){// 升序 while(++k <= right && a[k - 1] <= else=""> a[k + 1]) {// 降序 while(++k <=right k="" -="">= a[k]); //如果是降序的,找出k之后,把數(shù)列倒置 for (int lo = run[count],hi = k;++lo < --hi) {int t = a[lo]; a[lo] = a[hi]; a[hi] = t; } } else {// 相等 for(int m = MAX_RUN_LENGTH; ++k <=right && a[k - 1] == a[k];) {// 數(shù)列中有至少M(fèi)AX_RUN_LENGTH的數(shù)據(jù)相等的時(shí)候,直接使用快排。 // 這里為什么這么處理呢? if(--m == 0){sort(a, left, right, true); return; } } } /** * 數(shù)組并非高度有序,使用快速排序,因?yàn)閿?shù)組中有序數(shù)列的個(gè)數(shù)超過(guò)了MAX_RUN_COUNT */ if(++count == MAX_RUN_COUNT) {sort(a, left, right, true); return; } } //檢查特殊情況 if(run[count] == right++){// 最后一個(gè)有序數(shù)列只有最后一個(gè)元素 run[++count] =right; // 那給最后一個(gè)元素的后面加一個(gè)哨兵 } else if(count == 1) {// 整個(gè)數(shù)組中只有一個(gè)有序數(shù)列,說(shuō)明數(shù)組已經(jīng)有序啦,不需要排序了 return; } /** * 創(chuàng)建合并用的臨時(shí)數(shù)組。 * 注意: 這里變量right被加了1,它在數(shù)列最后一個(gè)元素位置+1的位置 * 這里沒(méi)看懂,沒(méi)發(fā)現(xiàn)后面的奇數(shù)處理和偶數(shù)處理有什么不同 */ int[] b; byte odd=0; for(int n=1; (n <<= 1) < count; odd ^=1); if(odd == 0) {b=a;a= new int[b.length]; for(int i=left -1; ++i < right; a[i] = b[i]); } else {b=new int[a.length]; } // 合并 // 最外層循環(huán),直到count為1,也就是棧中待合并的序列只有一個(gè)的時(shí)候,標(biāo)志合并成功 // a 做原始數(shù)組,b 做目標(biāo)數(shù)組 for(int last; count > 1; count = last) {// 遍歷數(shù)組,合并相鄰的兩個(gè)升序序列 for(int k = (last = 0) + 2; k <= count; k += 2) {// 合并run[k-2] 與 run[k-1]兩個(gè)序列 int hi = run[k], mi = run[k - 1]; for(int i = run[k - 2], p = i,q = mi; i < hi; ++i){// 這里我給源碼加了一個(gè)括號(hào),這樣好理解一點(diǎn)。 之前總覺(jué)得它會(huì)出現(xiàn)數(shù)組越界問(wèn)題, // 后來(lái)加了這個(gè)括號(hào)之后發(fā)現(xiàn)是沒(méi)有問(wèn)題的 if(q >= hi || (p < mi && a[p] < = else="" count="" int="" i="right," lo="run[count" --i="">= lo; b[i] = a[i]); run[++last] = right; } //臨時(shí)數(shù)組,與原始數(shù)組對(duì)調(diào),保持a做原始數(shù)組,b 做目標(biāo)數(shù)組 int[] t = a; a = b; b = t; }}int length = right - left + 1;// INSERTION_SORT_THRESHOLD為47,發(fā)現(xiàn)當(dāng)要排序的個(gè)數(shù)小于47個(gè)時(shí),采用插入排序,采用了哨兵方法,對(duì)于新元素從他前一個(gè)一個(gè)一個(gè)比較// Use insertion sort on tiny arraysif (length < INSERTION_SORT_THRESHOLD) {if (leftmost) {/* * Traditional (without sentinel) insertion sort, * optimized for server VM, is used in case of * the leftmost part. */ for (int i = left, j = i; i < right; j = ++i) {int ai = a[i + 1]; while (ai < a[j]) {a[j + 1] = a[j]; if (j-- == left) {break; } } a[j + 1] = ai; } } else {/** * 首先跨過(guò)開(kāi)頭的升序的部分 */ do {if(left > right) {return; } }while(a[++left] >= a[left - 1]); /** * 這里用到了成對(duì)插入排序方法,它比簡(jiǎn)單的插入排序算法效率要高一些 * 因?yàn)檫@個(gè)分支執(zhí)行的條件是左邊是有元素的 * 所以可以直接從left開(kāi)始往前查找。 */ for(int k = left; ++left <= k="++left)" int="" a1="" a2="a[left];">=a2 if(a1 < a2) {a2 = a1; a1 = a[left]; } //先把兩個(gè)數(shù)字中較大的那個(gè)移動(dòng)到合適的位置 while(a1 < a[--k]) {a[k + 2] = a[k]; //這里每次需要向左移動(dòng)兩個(gè)元素 } a[++k + 1] = a1; //再把兩個(gè)數(shù)字中較小的那個(gè)移動(dòng)到合適的位置 while(a2 < a[--k]) {a[k + 1] = a[k]; //這里每次需要向左移動(dòng)一個(gè)元素 } a[k + 1] = a2; } int last = a[right]; while(last < a[--right]) {a[right + 1] = last; } a[right + 1] = last; } return;}
至于大過(guò)INSERTION_SORT_THRESHOLD(47)的,用一種快速排序(雙軸快排)的方法:
從數(shù)列中挑出五個(gè)元素,稱(chēng)為 “基準(zhǔn)”(pivot);重新排序數(shù)列,所有元素比基準(zhǔn)值小的擺放在基準(zhǔn)前面,所有元素比基準(zhǔn)值大的擺在基準(zhǔn)的后面(相同的數(shù)可以到任一邊)。在這個(gè)分區(qū)退出之后,該基準(zhǔn)就處于數(shù)列的中間位置。這個(gè)稱(chēng)為分區(qū)(partition)操作;遞歸地(recursive)把小于基準(zhǔn)值元素的子數(shù)列和大于基準(zhǔn)值元素的子數(shù)列排序。
總結(jié):插入排序,快速排序,歸并排序三種排序的組合
1.4、parallelSort
并行排序,JDK1.8增加的新方法
// 并行排序的最小數(shù)組長(zhǎng)度private static final int MIN_ARRAY_SORT_GRAN = 1 << 13;public static void parallelSort(int[] a) {int n = a.length, p, g; // 如果數(shù)據(jù)的長(zhǎng)度小于 MIN_ARRAY_SORT_GRAN(1 << 13) if (n <= MIN_ARRAY_SORT_GRAN || // 或者當(dāng)前并行度級(jí)別是 1的話,仍然使用常規(guī)的雙軸快速排序 (p = ForkJoinPool.getCommonPoolParallelism()) == 1) DualPivotQuicksort.sort(a, 0, n - 1, null, 0, 0); else // 否則使用并行排序 new ArraysParallelSortHelpers.FJInt.Sorter (null, a, new int[n], 0, n, 0, ((g = n / (p << 2)) <= MIN_ARRAY_SORT_GRAN) ? MIN_ARRAY_SORT_GRAN : g).invoke();}
2、搜索:binarySearch
主要用于快速?gòu)臄?shù)組中查找對(duì)應(yīng)的值,如果查找到了,返回的是對(duì)應(yīng)數(shù)組的下標(biāo)的值;如果查詢不到則返回負(fù)數(shù);
二分查找確保數(shù)組一定是有序的,否則可能找不到對(duì)應(yīng)的數(shù)據(jù)
但是該方法有有一個(gè)問(wèn)題:如果一個(gè)數(shù)組當(dāng)中有多個(gè)元素,其無(wú)法保證匹配的到底是哪一個(gè)
// a:我們要搜索的數(shù)組,fromIndex:從那里開(kāi)始搜索,默認(rèn)是0; toIndex:搜索到何時(shí)停止,默認(rèn)是數(shù)組大小// key:我們需要搜索的值 // c:外部比較器private staticint binarySearch0(T[] a, int fromIndex, int toIndex, T key, Comparator c) {// 如果比較器 c 是空的,直接使用 key 的 Comparable.compareTo 方法進(jìn)行排序 // 假設(shè) key 類(lèi)型是 String 類(lèi)型,String 默認(rèn)實(shí)現(xiàn)了 Comparable 接口,就可以直接使用 compareTo 方法進(jìn)行排序 if (c == null) {// 這是另外一個(gè)方法,使用內(nèi)部排序器進(jìn)行比較的方法 return binarySearch0(a, fromIndex, toIndex, key); } int low = fromIndex; int high = toIndex - 1; // 開(kāi)始位置小于結(jié)束位置,就會(huì)一直循環(huán)搜索 while (low <= low="0,high" mid="(low" int="">>> 1; T midVal = a[mid]; // 比較數(shù)組中間值和給定的值的大小關(guān)系 int cmp = c.compare(midVal, key); // 如果數(shù)組中間值小于給定的值,說(shuō)明我們要找的值在中間值的右邊 if (cmp < 0) low = mid + 1; // 我們要找的值在中間值的左邊 else if (cmp > 0) high = mid - 1; else // 找到了 return mid; // key found } // 返回的值是負(fù)數(shù),表示沒(méi)有找到 return -(low + 1); // key not found.}
3、數(shù)據(jù)拷貝:copyOf和copyRange
拷貝整個(gè)數(shù)組:copyOf
public static int[] copyOf(int[] original, int newLength) { int[] copy = new int[newLength]; System.arraycopy(original, 0, copy, 0, Math.min(original.length, newLength)); return copy;}
拷貝部分?jǐn)?shù)組:copyOfRange
// original 原始數(shù)組數(shù)據(jù)// from 拷貝起點(diǎn)// to 拷貝終點(diǎn)public static char[] copyOfRange(char[] original, int from, int to) {// 需要拷貝的長(zhǎng)度 int newLength = to - from; if (newLength < 0) throw new IllegalArgumentException(from + " > " + to); // 初始化新數(shù)組 char[] copy = new char[newLength]; // 調(diào)用 native 方法進(jìn)行拷貝,參數(shù)的意思分別是: // 被拷貝的數(shù)組、從數(shù)組那里開(kāi)始、目標(biāo)數(shù)組、從目的數(shù)組那里開(kāi)始拷貝、拷貝的長(zhǎng)度 System.arraycopy(original, from, copy, 0, Math.min(original.length - from, newLength)); return copy;}
基本上調(diào)用的是System.arrayCopy方法。
另外在在ArrayList的toArray方法中,其調(diào)用的也是Arrays里的copyOf方法,因?yàn)锳rrayList的底層實(shí)現(xiàn)是數(shù)組;
4、數(shù)組填充:fill
5、數(shù)組轉(zhuǎn)換為結(jié)婚:asList
public staticListasList(T... a) { return new ArrayList<>(a);}
該方法有以下需要注意的:
其返回的集合不是java.util.ArrayList的實(shí)例,而是Array的內(nèi)部類(lèi):java.util.Arrays.ArrayList;java.util.Arrays.ArrayList不能對(duì)集合進(jìn)行增、刪操作,其沒(méi)有實(shí)現(xiàn)AbstractList類(lèi)中的add、remove方法;常見(jiàn)使用方法是:Listlist = new ArrayList<>(Arrays.asList(T...a));,可以將其作為參數(shù)傳到對(duì)應(yīng)集合的構(gòu)造方法里面;
二、Collections
為方便集合操作而產(chǎn)生的工具類(lèi)。
Collections也提供sort和binarySearch方法,其sort方法底層調(diào)用就是Arrays.sort方法,而binarySearch底層重寫(xiě)了二分查找算法,實(shí)現(xiàn)邏輯和Arrays的二分查找算法一致
1、sort()方法實(shí)現(xiàn)
public staticvoid sort(Listlist)
1.1、JDK1.6
1.1.1、源碼
// 基本方法public staticvoid sort(Listlist) {Object[] a = list.toArray(); Arrays.sort(a); ListIteratori = list.listIterator(); for (int j=0; j<A.LENGTH; j++)="" {i.next(); i.set((T)a[j]); }}/**********************下面方法未自Arrays***********************/// 調(diào)用 Arrays.sort(Object[] a) 排序方法,This algorithm offers guaranteed n*log(n) performance.public static void sort(Object[] a) {Object[] aux = (Object[])a.clone(); mergeSort(aux, a, 0, a.length, 0);}/** * Tuning parameter: list size at or below which insertion sort will be * used in preference to mergesort or quicksort. */private static final int INSERTIONSORT_THRESHOLD = 7;/** * Src is the source array that starts at index 0 * Dest is the (possibly larger) array destination with a possible offset * low is the index in dest to start sorting * high is the end index in dest to end sorting * off is the offset to generate corresponding low, high in src */private static void mergeSort(Object[] src, Object[] dest, int low, int high, int off) {int length = high - low; // Insertion sort on smallest arrays if (length < INSERTIONSORT_THRESHOLD) {for (int i = low; i < high; i++) for (int j = i; j > low && ((Comparable) dest[j - 1]).compareTo(dest[j]) > 0; j--) swap(dest, j, j - 1); return; } // Recursively sort halves of dest into src int destLow = low; int destHigh = high; low += off; high += off; int mid = (low + high) >>> 1; mergeSort(dest, src, low, mid, -off); mergeSort(dest, src, mid, high, -off); // If list is already sorted, just copy from src to dest. This is an // optimization that results in faster sorts for nearly ordered lists. if (((Comparable) src[mid - 1]).compareTo(src[mid]) <= 0) {System.arraycopy(src, low, dest, destLow, length); return; } // Merge sorted halves (now in src) into dest for (int i = destLow, p = low, q = mid; i < destHigh; i++) {if (q >= high || p < mid && ((Comparable) src[p]).compareTo(src[q]) <= 0) dest[i] = src[p++]; else dest[i] = src[q++]; }}private static void swap(Object[] x, int a, int b) {Object t = x[a]; x[a] = x[b]; x[b] = t;}
1.2、JDK1.7
1.2.1、源碼
public staticvoid sort(Listlist) {Object[] a = list.toArray(); Arrays.sort(a); ListIteratori = list.listIterator(); for (int j=0; j<A.LENGTH; j++)="" {i.next(); i.set((T)a[j]); }}//Arrays.sort方法public static void sort(Object[] a) {if (LegacyMergeSort.userRequested) legacyMergeSort(a); else ComparableTimSort.sort(a);}static final class LegacyMergeSort {private static final boolean userRequested = java.security.AccessController.doPrivileged( new sun.security.action.GetBooleanAction( "java.util.Arrays.useLegacyMergeSort")).booleanValue();}/** To be removed in a future release. */private static void legacyMergeSort(Object[] a) {Object[] aux = a.clone(); mergeSort(aux, a, 0, a.length, 0);}private static void mergeSort(Object[] src, Object[] dest, int low, int high, int off) {int length = high - low; // Insertion sort on smallest arrays if (length < INSERTIONSORT_THRESHOLD) {for (int i=low; ilow && ((Comparable) dest[j-1]).compareTo(dest[j])>0; j--) swap(dest, j, j-1); return; } // Recursively sort halves of dest into src int destLow = low; int destHigh = high; low += off; high += off; int mid = (low + high) >>> 1; mergeSort(dest, src, low, mid, -off); mergeSort(dest, src, mid, high, -off); // If list is already sorted, just copy from src to dest. This is an // optimization that results in faster sorts for nearly ordered lists. if (((Comparable)src[mid-1]).compareTo(src[mid]) <= 0) {System.arraycopy(src, low, dest, destLow, length); return; } // Merge sorted halves (now in src) into dest for(int i = destLow, p = low, q = mid; i < destHigh; i++) {if (q >= high || p < mid && ((Comparable)src[p]).compareTo(src[q])<=0) dest[i] = src[p++]; else dest[i] = src[q++]; }}/** * Swaps x[a] with x[b]. */private static void swap(Object[] x, int a, int b) {Object t = x[a]; x[a] = x[b]; x[b] = t;}// ComparableTimSort
1.3、JDK1.8
2、集合的最大、最小值
max方法提供了兩種實(shí)現(xiàn)
// 沒(méi)有比較器的,那么默認(rèn)非泛型必須實(shí)現(xiàn)了Comparable接口,否則編譯的時(shí)候會(huì)報(bào)錯(cuò),因?yàn)槠涞讓邮钦{(diào)用Comparable的compareTo方法來(lái)進(jìn)行比較的;// 泛型必須繼承Objec且實(shí)現(xiàn)Comparable接口;public staticT max(Collection coll) {Iterator i = coll.iterator(); T candidate = i.next(); while (i.hasNext()) {T next = i.next(); if (next.compareTo(candidate) > 0) candidate = next; } return candidate;}// 帶比較器,跟不帶比較器的類(lèi)似;public staticT max(Collection coll, Comparator comp) {if (comp==null) return (T)max((Collection) coll); Iterator i = coll.iterator(); T candidate = i.next(); while (i.hasNext()) {T next = i.next(); if (comp.compare(next, candidate) > 0) candidate = next; } return candidate;}
3、多張類(lèi)型的集合
Collections對(duì)原始集合進(jìn)行了封裝,提供了:線程安全的集合、不可變的集合;
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-R1ReBn5L-1580104538820)(集合/image/Collections-InnerClass.png)]
3.1、線程安全的集合
線程安全的集合都是以Synchronized開(kāi)頭
SynchronizedListSynchronizedMapSynchronizedSetSynchronizedSortedMapSynchronizedSortedSet
上述線程安全的集合都是通過(guò)synchronized代碼塊來(lái)實(shí)現(xiàn)的,雖然都是線程安全的,但是在實(shí)際應(yīng)用中避免使用這些類(lèi);
3.2、不可變集合
不可變集合都是Unmodifiable開(kāi)頭,這類(lèi)方法的操作是會(huì)從原集合中得到一個(gè)不可變的新集合,新集合只能訪問(wèn),不能修改;否則拋出異常;
UnmodifiableCollection:為只讀集合
static class UnmodifiableListextends UnmodifiableCollectionimplements List{public E set(int index, E element) {// 拋出異常 throw new UnsupportedOperationException(); } public void add(int index, E element) {// 拋出異常 throw new UnsupportedOperationException(); } public E remove(int index) {// 拋出異常 throw new UnsupportedOperationException(); } public int indexOf(Object o) {return list.indexOf(o);} public int lastIndexOf(Object o) {return list.lastIndexOf(o);} public boolean addAll(int index, Collection c) {// 拋出異常 throw new UnsupportedOperationException(); } @Override public void replaceAll(UnaryOperatoroperator) {// 拋出異常 throw new UnsupportedOperationException(); } @Override public void sort(Comparator c) {// 拋出異常 throw new UnsupportedOperationException(); }}
三、Objects
1、相等
主要有兩個(gè)方法:deepEquals、equals,其中deepEquals主要是判斷數(shù)組的,后面equals主要判斷基本類(lèi)型和自定義類(lèi)型的
public static boolean deepEquals(Object a, Object b) {if (a == b) return true; else if (a == null || b == null) return false; else return Arrays.deepEquals0(a, b);}public static boolean equals(Object a, Object b) {return (a == b) || (a != null && a.equals(b));}
2、判空
Objects.isNull(Object obj)Objects.nonNull(Object obj)Objects.requireNonNull(T obj)Objects.requireNonNull(T obj, String message)Objects.requireNonNull(T obj, SuppliermessageSupplier)
標(biāo)簽:
相關(guān)推薦:
精彩放送:
- []LeetCode實(shí)戰(zhàn):row_number函數(shù)用法
- []常用的shell腳本 linux腳本之間的傳遞參數(shù)
- []【教程】矩陣相乘時(shí) 我們先寫(xiě)位移再縮放
- []立大志,明大德,成大才,延安紅街能賦予你無(wú)窮的向上力量
- []【當(dāng)前熱聞】2月3日匯市觀潮:歐元、英鎊和日元技術(shù)分析
- []【世界播資訊】數(shù)據(jù)字典中的同義詞:user_synonyms
- []當(dāng)前觀察:美原油交易策略:非農(nóng)或無(wú)力拯救油價(jià),周線或迎兩連跌
- []前沿資訊!廈門(mén)出臺(tái)保障性租賃住房?jī)?yōu)惠政策 包含金融、土地、稅費(fèi)等方面
- []當(dāng)前觀察:187億美元!康菲石油2022年利潤(rùn)翻倍 加入石油巨頭大豐收隊(duì)列
- []現(xiàn)貨黃金交易策略:決戰(zhàn)非農(nóng),金價(jià)面臨大跌風(fēng)險(xiǎn)?
- []世界簡(jiǎn)訊:常潤(rùn)股份:公司已預(yù)約于2023年4月11日披露2022年報(bào)
- []元道通信:公司目前該項(xiàng)目合作已經(jīng)終止。相關(guān)信息以公司在巨潮網(wǎng)披露的公告為準(zhǔn)祝您生活愉快
- []微速訊:青島某共有產(chǎn)權(quán)房“爆雷”?城投公司回應(yīng)來(lái)了
- []上海楊浦保障性租賃住房112項(xiàng)目復(fù)工 建成后可提供332套
- []頭條:降息潮下,存量房房貸能降嗎?
- []【世界播資訊】欽州:“十四五”期間保障性租賃住房發(fā)展目標(biāo)為3000套(間)
- []天天播報(bào):雙樂(lè)股份:相比印度,公司在持續(xù)供貨能力和供貨的及時(shí)性、產(chǎn)品的環(huán)保性、齊全性和質(zhì)量穩(wěn)定性上具有較大優(yōu)勢(shì)
- []社保卡怎么綁定銀行卡(社保卡重新綁定銀行卡)
- []去銀行存錢(qián)可以特批信用卡不(儲(chǔ)蓄卡存錢(qián)可以辦信用卡嗎)
- []天天即時(shí)看!人沒(méi)到60歲死了農(nóng)村養(yǎng)老保險(xiǎn)白交了嗎(人沒(méi)到60歲死了社保白交了嗎)
- []今日熱訊:高鳳篤學(xué)誦讀翻譯_高鳳癡迷誦讀譯文
- []每日速遞:中金:對(duì)港股維持積極看法
- []速讀:寧波購(gòu)房最高送18萬(wàn)消費(fèi)券!
- []頭條焦點(diǎn):黃金因獲利了結(jié)回調(diào),專(zhuān)家仍看好其2023年表現(xiàn)!
- []全球?qū)崟r(shí):浩洋股份:公司目前兩個(gè)提升產(chǎn)能的募投項(xiàng)目正在有序加快推進(jìn)中,項(xiàng)目投產(chǎn)后將為公司提升較大的產(chǎn)能
- []世界觀速訊丨力合科技:公司堅(jiān)持以自主創(chuàng)新為主的技術(shù)發(fā)展戰(zhàn)略,研發(fā)生產(chǎn)具有自主知識(shí)產(chǎn)權(quán)的國(guó)產(chǎn)化儀器設(shè)備
- []尚品宅配8億元定增募資獲深交所通過(guò)
- []環(huán)球簡(jiǎn)訊:地產(chǎn)“陽(yáng)康”了嗎?
- []紐泰格:公司目前已與部分空氣懸架客戶在業(yè)務(wù)洽談中,已經(jīng)被納入供應(yīng)商體系
- []效仿恒大?石家莊房企潤(rùn)江集團(tuán)要搞新能源汽車(chē),焦賀錢(qián)從哪來(lái)
- []快報(bào):今年1月樓市低迷 內(nèi)房股多數(shù)受壓 合景泰富集團(tuán)(01813)跌6.83%
- []觀熱點(diǎn):房企年內(nèi)融資已近900億元
- []世界今亮點(diǎn)!碩貝德:公司持續(xù)批量為北美客戶提供了ARVR天線及散熱產(chǎn)品
- []環(huán)球視訊!【BT金融分析師】Carvana股價(jià)暴漲108%,分析師稱(chēng)上演了一幕絕地求生的戲碼
- []新資訊:一張圖:黃金原油外匯股指"樞紐點(diǎn)+多空占比"一覽(2023/02/03周五)
- []全球熱文:* 理想汽車(chē)跌超5%,成交額超4.70億港元
- []今日訊!這家儲(chǔ)能公司境外毛利率超境內(nèi)3倍
- []播報(bào):原單位社保不給減員怎么辦(停保不給辦減員怎么辦)
- []全球關(guān)注:鋰電材料產(chǎn)銷(xiāo)量增長(zhǎng) 貝特瑞2022年預(yù)盈超21億元
- []消息!60MW/120MWh儲(chǔ)能電站投產(chǎn)!
- []怎樣用花唄還信用卡還款(怎樣用花唄還信用卡還款)
- []平安產(chǎn)險(xiǎn)正式編制員工待遇(平安集團(tuán)b類(lèi)員工薪酬)
- []天天新動(dòng)態(tài):信用卡最高可分期金額什么意思呀(信用卡最高可分期金額什么意思)
- []出租車(chē)擋道被消防車(chē)剮蹭后負(fù)全責(zé)詳細(xì)內(nèi)容
- []環(huán)球熱門(mén):中南建設(shè):1月合同銷(xiāo)售金額32.4億元
- []全球視訊!中英科技:截至1月31日,公司股東總數(shù)為11501戶
- []當(dāng)前視點(diǎn)!中糧置業(yè)40億元小公募債券獲深交所通過(guò)
- []當(dāng)前關(guān)注:江西全省2023年度保障性租賃住房籌集(開(kāi)工)目標(biāo)任務(wù)為165766套(間)
- []世界通訊!香港一月一手私宅買(mǎi)賣(mài)起步回升 錄341宗
- []隔離霜和防曬霜一樣嗎?隔離霜和防曬霜的區(qū)別是什么?
- []熱消息:華潤(rùn)置地48.8億港元認(rèn)購(gòu)香港14.7萬(wàn)平商住項(xiàng)目45%股權(quán)
- []當(dāng)前滾動(dòng):新年祝福怎么寫(xiě)?新年對(duì)同事的祝福語(yǔ)有哪些?
- []六一兒童節(jié)給心儀的女朋友送什么禮物?適合送女朋友的禮物推薦
- []國(guó)內(nèi)光刻氣產(chǎn)品進(jìn)入ASML供應(yīng)鏈!電子特氣國(guó)產(chǎn)替代將加速提升
- []【世界聚看點(diǎn)】寧德時(shí)代回應(yīng)海外上市
- []世界快資訊:千山暮雪劉愷威大結(jié)局是什么?千山暮雪劇情介紹
- []全球微動(dòng)態(tài)丨陽(yáng)光車(chē)險(xiǎn)和平安車(chē)險(xiǎn)哪個(gè)好一點(diǎn)(平安車(chē)險(xiǎn)和人保車(chē)險(xiǎn)哪個(gè)好)
- []曹操墓是怎么發(fā)現(xiàn)的?曹操墓在哪里?
- []環(huán)球速看:蘭州至西藏經(jīng)過(guò)哪里?自駕游經(jīng)過(guò)的地方有哪些?
- []環(huán)球微頭條丨國(guó)軒電池裝車(chē)易捷特,進(jìn)入雷諾-日產(chǎn)-三菱聯(lián)盟供應(yīng)商體系
- []【世界速看料】男士t恤哪個(gè)牌子好?男士t恤較好的品牌有哪些?
- []街籃手游哪個(gè)中鋒好?最強(qiáng)中鋒有哪些推薦?
- []天天快報(bào)!成語(yǔ)壯志凌云是什么意思?壯志凌云出自哪里?
- []北京社保還有存折嗎(北京社保卡沒(méi)有存折能用嗎)
- []全球熱門(mén):浙江景寧綠電100%泛微網(wǎng)工程正式投運(yùn)
- []天天最新:燃料電池企業(yè)“簽約潮”背后
- []世界百事通!企事業(yè)養(yǎng)老金什么時(shí)候并軌(企事業(yè)單位養(yǎng)老金并軌實(shí)施時(shí)間)
- []6.5億元!江特電機(jī)擬在江西高安投建年產(chǎn)3萬(wàn)噸碳酸鋰項(xiàng)目
- []最資訊丨華菱線纜:公司未參加該項(xiàng)目投標(biāo)
- []財(cái)面兒|景瑞控股1月合約銷(xiāo)售額3.42億元
- []訊息:港1月住宅樓宇買(mǎi)賣(mài)合約3051份 按月上升21.7%
- []天天簡(jiǎn)訊:首鋼商業(yè)地產(chǎn)6.36億元ABS狀態(tài)更新為“已受理”
- []前沿?zé)狳c(diǎn):成都城建30億元供應(yīng)鏈ABS項(xiàng)目狀態(tài)更新為“已反饋”
- []全球看熱訊:家居丨東方雨虹:控股股東李衛(wèi)國(guó)1637.43萬(wàn)股股份質(zhì)押展期
- []當(dāng)前觀點(diǎn):恩捷股份:公司各項(xiàng)生產(chǎn)經(jīng)營(yíng)活動(dòng)均有序進(jìn)行;隔膜產(chǎn)品可存放時(shí)間較長(zhǎng)
- []快可電子:今年將有上海光伏展、德國(guó)慕尼黑光伏展、各級(jí)光伏協(xié)會(huì)等機(jī)構(gòu)舉辦的展會(huì)
- []勘設(shè)股份:投資者朋友截至2023年1月20日,公司股東總戶數(shù)為22436
- []香港旅游業(yè)用工需求大增,迪士尼樂(lè)園開(kāi)過(guò)萬(wàn)月薪招服務(wù)員且無(wú)學(xué)歷要求
- []環(huán)球觀點(diǎn):湖北大悟抽水蓄能電站項(xiàng)目開(kāi)工
- []焦點(diǎn)觀察:農(nóng)業(yè)戶口買(mǎi)房能否辦理銀行按揭貸款
- []【環(huán)球快播報(bào)】華夏航空:遭處罰?
- []3年漫長(zhǎng)資產(chǎn)重組收尾,云南城投從此不再是“房企”
- []全球快資訊丨房企去年業(yè)績(jī)分化明顯:28家預(yù)盈、36家預(yù)虧總額超千億
- []洪匯新材:截至2023年1月31日,公司股東人數(shù)為10,151戶
- []今日聚焦!龍洲股份:公司現(xiàn)代物流業(yè)務(wù)涵蓋了瀝青供應(yīng)鏈、港口碼頭綜合服務(wù)、物流園區(qū)經(jīng)營(yíng)等
- []當(dāng)前視點(diǎn)!“招滬籍單身,酬金20萬(wàn)”,上海10萬(wàn)+紅盤(pán)的工地外,有人做起了房票買(mǎi)賣(mài)生意
- []快手上的內(nèi)科醫(yī)生劉勇剛——盡職盡責(zé),精益求精
- []眾業(yè)達(dá):投資者朋友截至目前,公司無(wú)AIGC技術(shù)應(yīng)用及技術(shù)儲(chǔ)備
- []標(biāo)準(zhǔn)股份:截至2023年1月31日,公司股東人數(shù)約為2.51萬(wàn)戶
- []【焦點(diǎn)熱聞】每經(jīng)熱評(píng)|提前還房貸人群增多 說(shuō)明“房住不炒”收到了實(shí)效
- []如何正確應(yīng)對(duì)流感問(wèn)題?流感靈膠囊提供專(zhuān)業(yè)助力
- []集中供地制度被取消?權(quán)威部門(mén)回應(yīng)
- []世界500強(qiáng)巨鱷入場(chǎng)!306億儲(chǔ)能電池超級(jí)工廠落地!
- []每日熱點(diǎn):豐元(云南)年產(chǎn)20萬(wàn)噸磷酸鐵鋰正極材料項(xiàng)目一期投產(chǎn)
- []海基新能源推出首款375Ah大容量?jī)?chǔ)能電芯和鈉離子電池
- []天天熱門(mén):甘肅省宕昌抽水蓄能電站預(yù)可研審查會(huì)議召開(kāi)
- []滾動(dòng):鼎勝新材與LG新能源簽約 四年提供約6.1萬(wàn)噸鋰電池鋁箔
- []個(gè)人參保日期和首次參保日期不同(參工時(shí)間和參保時(shí)間不一致怎么辦)
- []【世界聚看點(diǎn)】一份文件流傳開(kāi)來(lái),集中供地制度要取消?專(zhuān)家回應(yīng):不可能
- []環(huán)球消息!豪森股份:豪森公司通過(guò)為客戶提供汽車(chē)生產(chǎn)制造“軟硬結(jié)合”一體化的制造解決方案獲得營(yíng)業(yè)收入及利潤(rùn)
- 全球今亮點(diǎn)!Application模式和Session模式有什么區(qū)別?
- 構(gòu)造器必須是私有的 工具類(lèi)的特征是什么?
- 全球觀焦點(diǎn):電腦操作系統(tǒng)有哪些?常用的電腦操作系統(tǒng)有哪些?
- 缸鴨狗X寧波阪急攜手鬧元宵,給生活添一碗創(chuàng)意盆栽湯圓!
- 什么是思維導(dǎo)圖?思維導(dǎo)圖的用途有哪些?
- 【獨(dú)家焦點(diǎn)】自動(dòng)化控制系統(tǒng)——C/S架構(gòu)系統(tǒng)
- 每日短訊:加強(qiáng)物理存儲(chǔ)基礎(chǔ)架構(gòu)的可視化——VASA
- 考研英語(yǔ)真題 翻譯真題里的人名該怎么翻譯?
- 速遞!mfc100u.dll丟失怎么解決?mfc100u.dll丟失的解決方法
- 世界快播:高等數(shù)學(xué)筆記-蘇德礦第九章-重積分-二重積分
- B站注冊(cè)資本增幅400%至5億 目前由陳睿全資持股
- 光源資本出任獨(dú)家財(cái)務(wù)顧問(wèn) 沐曦集成電路10億元A輪融資宣告完成
- 巨輪智能2021年上半年?duì)I收11.24億元 期內(nèi)研發(fā)費(fèi)用投入增長(zhǎng)19.05%
- 紅棗期貨尾盤(pán)拉升大漲近6% 目前紅棗市場(chǎng)總庫(kù)存約30萬(wàn)噸
- 嘉銀金科發(fā)布2021年Q2財(cái)報(bào) 期內(nèi)凈利潤(rùn)達(dá)1.27億元同比增長(zhǎng)208%
- 成都銀行2021上半年凈利33.89億元 期內(nèi)實(shí)現(xiàn)營(yíng)收同比增長(zhǎng)17.27億元
- 汽車(chē)之家發(fā)布2021年第二季度業(yè)績(jī) 期內(nèi)新能源汽車(chē)品牌收入增長(zhǎng)238%
- 中信銀行上半年實(shí)現(xiàn)凈利潤(rùn)290.31億元 期末不良貸款余額706.82億元
- 光伏概念掀起漲停潮交易價(jià)格創(chuàng)新高 全天成交額達(dá)1.29億元
- 上半年生物藥大增45% 關(guān)鍵財(cái)務(wù)指標(biāo)好轉(zhuǎn)營(yíng)收賬款持續(xù)下降
- 環(huán)球視點(diǎn)!10萬(wàn)股東請(qǐng)留意!兩家A股公司同日公告觸及退市!這些公司也拉響警報(bào)(名單)
- 環(huán)球視訊!杭州:截至2022年底累計(jì)籌集保障性租賃住房房源14.6萬(wàn)套
- 全球信息:福蓉科技:截至2023年1月31日股東數(shù)為16656戶
- 有小額貸款可以申請(qǐng)車(chē)貸嗎(有小額貸款可以申請(qǐng)車(chē)貸嗎)
- 全球今頭條!音像資料
- 每日關(guān)注!深圳社保轉(zhuǎn)到惠州去怎么轉(zhuǎn)的(深圳社保轉(zhuǎn)到惠州去怎么轉(zhuǎn))
- 游客行李被酒店清出房間、司機(jī)中途甩客,西雙版納旅游亂象頻現(xiàn)
- 社保綁定的銀行卡能取錢(qián)嗎(社保卡綁定銀行卡可以取錢(qián)嗎)
- 世界報(bào)道:無(wú)錫建投20億元小公募項(xiàng)目狀態(tài)更新為“已反饋”
- 每日頭條!星巴克第一財(cái)季全球凈新開(kāi)459家門(mén)店 中國(guó)門(mén)店總數(shù)達(dá)6090家
- 【焦點(diǎn)熱聞】珠海華發(fā)集團(tuán)15億元公司債將于2月6日付息 票面利率為4.32%
- 環(huán)球動(dòng)態(tài):最新龍虎榜:機(jī)構(gòu)買(mǎi)入云從科技超1億,知名游資買(mǎi)入藍(lán)英裝備
- 不是廈門(mén)戶口去鼓浪嶼去哪個(gè)碼頭(非廈門(mén)戶口去鼓浪嶼從哪個(gè)碼頭)
- 每日時(shí)訊!乙肝醫(yī)保能報(bào)銷(xiāo)嗎(乙肝門(mén)診檢查費(fèi)用能報(bào)銷(xiāo)嗎)
- 中國(guó)人壽為什么在美國(guó)上市(中國(guó)人壽為什么在美國(guó)上市)
- 微資訊!乙肝干擾素2022年能報(bào)銷(xiāo)嗎醫(yī)保(乙肝干擾素2022年能報(bào)銷(xiāo)嗎)
- 當(dāng)前頭條:北京醫(yī)保存折和醫(yī)保卡里的錢(qián)一樣嗎(北京醫(yī)保存折和卡有什么區(qū)別)
- 天天快資訊:信用卡追回利息對(duì)卡有影響嗎(信用卡退息對(duì)信用卡有影響嗎)
- 體外碎石可以醫(yī)保報(bào)銷(xiāo)嗎(門(mén)診做體外碎石住院醫(yī)保能報(bào)銷(xiāo)嗎)
- 今日最新!車(chē)保險(xiǎn)理賠流程怎么賠付
- 世界快看:財(cái)意險(xiǎn)都是包括什么
- 【獨(dú)家焦點(diǎn)】樓市觀察丨金光華再推別墅“回鍋” 2022深圳樓市中的冷熱參差
- 運(yùn)險(xiǎn)費(fèi)是退貨時(shí)不用付運(yùn)費(fèi)嗎
- 最新資訊:英力特:截止2023年1月31日,公司股東總數(shù)為29,360
- 天天觀天下!在海洋運(yùn)輸貨物保險(xiǎn)中,共同海損屬于
- 30歲女子養(yǎng)胃2年,胃炎反而加重,醫(yī)生:這1水或是胃炎“加速器”
- 環(huán)球信息:二連浩特向浩貿(mào)易有限公司
- 上海平安銀行是正規(guī)銀行嗎(平安銀行是正規(guī)銀行嗎2020)
- 全球快播:海德股份:2月1日公司高管曹體倫、廖緒文增持公司股份合計(jì)4.17萬(wàn)股
- 棲霞建設(shè):副總裁湯群辭職
- 頭條:科倫藥業(yè):2月1日公司高管馮昊、賴(lài)德貴增持公司股份合計(jì)7.4萬(wàn)股
- 全球消息!CBA新消息!籃協(xié)再頒新規(guī),遼籃又被針對(duì),廣東男籃成贏家
- 五險(xiǎn)能單獨(dú)買(mǎi)幾項(xiàng)嗎(五險(xiǎn)能單獨(dú)買(mǎi)幾項(xiàng)嗎)
- 證監(jiān)會(huì):在促進(jìn)房地產(chǎn)平穩(wěn)健康發(fā)展等重點(diǎn)領(lǐng)域推出更多務(wù)實(shí)舉措
- 當(dāng)前快訊:證監(jiān)會(huì):穩(wěn)妥有序化解私募基金、債券違約等重點(diǎn)領(lǐng)域風(fēng)險(xiǎn)
- 九典制藥:2月1日公司高管段立新減持公司股份合計(jì)130.03萬(wàn)股
- ST路通:2月1日公司高管莊小正減持公司股份合計(jì)2萬(wàn)股
- 華夏幸福49.6億美元債以發(fā)新債券向債權(quán)人分配方式實(shí)施重組交割
- 世界快資訊丨深房中協(xié):嚴(yán)禁房地產(chǎn)中介機(jī)構(gòu)等參與違規(guī)利用“經(jīng)營(yíng)貸”
- 熱資訊!順豐同城:轉(zhuǎn)換H股將于2月7日在聯(lián)交所上市
- 【環(huán)球熱聞】ST商城下修2022年業(yè)績(jī)預(yù)告 預(yù)計(jì)虧損額增至2.28億元左右
- 泰福泵業(yè):2月1日公司高管毛世良減持公司股份合計(jì)2萬(wàn)股
- 全球資訊:66鴻運(yùn)b型保險(xiǎn)98版利差返還型怎么樣(鴻運(yùn)a型保險(xiǎn)98版利差返還型領(lǐng)取)
- 60歲前身故社保退多少錢(qián)一個(gè)月(人去世社保卡怎么退保)
- 全球熱議:如何投訴光大信用卡(怎么投訴光大信用卡銀行)
- 行動(dòng)教育:1月18日至1月31日公司高管李宜增持公司股份合計(jì)8000股
- 北辰實(shí)業(yè):北辰集團(tuán)委托北辰商管提供辰運(yùn)物業(yè)及亞市管理服務(wù)
- 泰禾智能:2月1日公司高管王金誠(chéng)減持公司股份合計(jì)47.75萬(wàn)股
- 每日時(shí)訊!奧來(lái)德股東曲志恒減持7350股 套現(xiàn)41.7萬(wàn) 2022年前三季度公司凈利1.12億
- 【全球報(bào)資訊】鉑力特:2月2日公司高管雷開(kāi)貴減持公司股份合計(jì)10萬(wàn)股
- 全球熱訊:天津中綠電:不存在房地產(chǎn)業(yè)務(wù)及募資投入房地產(chǎn)情況
- 今日熱文:中南建設(shè)1月合同銷(xiāo)售金額32.4億 同比下滑近三成
- 每日快看:省廣集團(tuán):公司根據(jù)客戶需求開(kāi)展相關(guān)業(yè)務(wù)
- 全球今亮點(diǎn)!華僑城“18僑城03”公司債將兌付并摘牌 存續(xù)規(guī)模0.4億元
- 三部門(mén)聯(lián)合發(fā)布高森林火險(xiǎn)橙色預(yù)警
- 世界速訊:中南建設(shè)近期累計(jì)被動(dòng)減持約1.63億股 占總股本4.26%
- 焦點(diǎn)速看:安達(dá)維爾:2022年度公司營(yíng)收情況請(qǐng)關(guān)注公司將于4月18日在巨潮資訊網(wǎng)披露的年度報(bào)告
- 每日快報(bào)!為什么養(yǎng)老保險(xiǎn)和醫(yī)療保險(xiǎn)月份不一樣(為什么養(yǎng)老保險(xiǎn)和醫(yī)療保險(xiǎn)月份不一樣)
- 全球快資訊:信貸公司貸款收取多少手續(xù)費(fèi)合適(信貸公司貸款收取多少手續(xù)費(fèi)合理)
- 環(huán)球報(bào)道:華貿(mào)物流:股東計(jì)劃減持公司股份 累計(jì)擬減持不超過(guò)93.03萬(wàn)股
- 天天新資訊:醋化股份:2月2日公司高管慶九、帥建新、錢(qián)進(jìn)、薛金全、顧清泉、丁彩峰減持公司股份合計(jì)408.96萬(wàn)股
- 【環(huán)球快播報(bào)】百納千成:影視項(xiàng)目的最新動(dòng)態(tài)請(qǐng)關(guān)注公司官網(wǎng)或公司微信公眾號(hào)“百納千成”
- 【世界播資訊】錦和商管向北京億鵬所提供2300萬(wàn)元財(cái)務(wù)資助 已全部轉(zhuǎn)為股權(quán)轉(zhuǎn)讓款
- 全球視點(diǎn)!福建投資開(kāi)發(fā)5億元公司債券將付息 利率3.69%
- 創(chuàng)世紀(jì):公司五軸機(jī)床正持續(xù)開(kāi)發(fā)中,部分型號(hào)已進(jìn)入小批量生產(chǎn)階段;3C類(lèi)機(jī)床訂單尚在逐步恢復(fù)中
- 天天要聞:邁普醫(yī)學(xué):公司產(chǎn)品有在部隊(duì)醫(yī)院中使用
- 酒店業(yè)率先復(fù)蘇,超七成企業(yè)春節(jié)營(yíng)收恢復(fù)至疫前
- 精選!民生信用卡最低還款額及利息怎么計(jì)算的(民生信用卡還款額度計(jì)算方法)
- 微動(dòng)態(tài)丨中國(guó)人壽人士助理(中國(guó)人壽人事助理是做什么)
- 當(dāng)前訊息:肋間神經(jīng)炎
- 最資訊丨新地NOVO LAND 第2B期已取得預(yù)售樓花同意書(shū)
- 天天看熱訊:景瑞控股1月合約銷(xiāo)售額3.42億元 同比下降46%
- 焦點(diǎn)速遞!顧家家居:截止2023年1月底已累計(jì)回購(gòu)54.53萬(wàn)股 耗資逾2000萬(wàn)元
- 鄭中設(shè)計(jì):截至2023年1月31日公司股東人數(shù)為13,096戶
- 每日看點(diǎn)!青島市一季度394個(gè)城市更新建設(shè)項(xiàng)目集中開(kāi)工
- 新資訊:曠達(dá)科技:芯投微及其控股公司產(chǎn)品已有用于模組的批量訂單
- 世界快報(bào):天虹股份:一期增持計(jì)劃所持公司162萬(wàn)股非交易過(guò)戶已登記完成
- 世界快看點(diǎn)丨百聯(lián)股份:公司將嚴(yán)格按照上交所的相關(guān)規(guī)定履行信息披露義務(wù)
- 155億之后又108億!你投的嘛,偶像!
- 全球熱點(diǎn)!充電樁建設(shè)既要速度更要質(zhì)量
- 環(huán)球熱門(mén):比亞迪股份有限公司董事長(zhǎng)兼總裁王傳福:打造新能源汽車(chē)王牌
- 贛鋒去年凈利預(yù)計(jì)超180億元,同比增長(zhǎng)最高320%
- 年滿60歲可以參加職工醫(yī)保嗎(滿了60歲能買(mǎi)職工醫(yī)保嗎)
- 天天微資訊!早上可以還信用卡嗎(信用卡還款日凌晨就能還款嗎)
- 佛山村田五礦精密材料有限公司關(guān)于綠色電力供應(yīng)的合同簽訂到2030年,實(shí)現(xiàn)100%綠色電力生產(chǎn)
- 滄州明珠2022年目標(biāo)銷(xiāo)售2.86億㎡隔膜 擬受讓明珠鋰電10%股權(quán)
- 2023原油市場(chǎng)展望,中海油的投資機(jī)會(huì)
- 當(dāng)前快看:上游震蕩博弈 光伏組件定價(jià)遇阻觀望(2023.2.2)
- 環(huán)球速訊:TOP10的變與不變!2022中國(guó)市場(chǎng)動(dòng)力電池裝機(jī)解析
- 每日動(dòng)態(tài)!1.47GW!國(guó)華投資發(fā)布2023年第一批光伏組件(182、210)采購(gòu)項(xiàng)目
- 山羊胡子怎么畫(huà)?山羊胡子的畫(huà)法?
- 通訊!網(wǎng)絡(luò)中tag什么意思?網(wǎng)絡(luò)中tag是指什么?
- 孤戰(zhàn)的演員有哪些?孤戰(zhàn)劇情介紹
- 每日熱門(mén):重案六組佟林是好是壞?重案六組佟林扮演者是誰(shuí)?
- 世界快資訊:氣功大師王林有什么本事?王林資料介紹
- 創(chuàng)造營(yíng)王藝晨為什么退賽?創(chuàng)造營(yíng)節(jié)目組給出的理由是什么?
- 北京海淀成為全國(guó)首個(gè)生產(chǎn)總值破萬(wàn)億的地市級(jí)區(qū)縣
- 【聚看點(diǎn)】2月2日焦點(diǎn)科技漲停分析:跨境電商,醫(yī)療信息化,金融科技概念熱股
- 全球觀察:關(guān)于雷鋒的資料有哪些?雷鋒的故事有哪些?
- 每日熱門(mén):網(wǎng)絡(luò)上曹縣是什么梗?曹縣是什么意思?