最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java收集器Collector案例匯總

 更新時(shí)間:2022年06月09日 17:12:22   作者:這是一條海魚(yú)  
這篇文章主要介紹了java收集器Collector案例匯總,Collectors作為Stream的collect方法的參數(shù),Collector是一個(gè)接口,它是一個(gè)可變的匯聚操作,更多相關(guān)介紹,需要的朋友可以參考下

一、收集器Collector

//T:表示流中每個(gè)元素的類(lèi)型。 A:表示中間結(jié)果容器的類(lèi)型。 R:表示最終返回的結(jié)果類(lèi)型。
public interface Collector<T, A, R> {

? ? Supplier<A> supplier()//生成容器

?? ?BiConsumer<A,T>?? ?accumulator()//是添加元素

?? ?BinaryOperator<A> combiner()//是合并容器

?? ?Function<A,R>finisher()///是輸出的結(jié)果

?? ?Set<Collector.Characteristics>?? ?characteristics()//返回Set的Collector.Characteristics指示此收集器的特征。

?? ?//返回一個(gè)新的Collector由給定的描述supplier, accumulator,combiner,和finisher功能。
?? ?static <T,A,R> Collector<T,A,R> of(Supplier<A> supplier,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?BiConsumer<A,T> accumulator,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?BinaryOperator<A> combiner,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?Function<A,R> finisher,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?Collector.Characteristics... characteristics)


?? ?//返回一個(gè)新的Collector由給定的描述supplier, accumulator和combiner功能。
?? ?static <T,R> Collector<T,R,R>?? ?of(Supplier<R> supplier,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ? ? BiConsumer<R,T> accumulator,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ? ? BinaryOperator<R> combiner,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ? ? Collector.Characteristics... characteristics)

}

二、收集器工廠Collectors

public final class Collectors extends Object

Collectors作為Stream的collect方法的參數(shù),Collector是一個(gè)接口,它是一個(gè)可變的匯聚操作,將輸入元素累計(jì)到一個(gè)可變的結(jié)果容器中;它會(huì)在所有元素都處理完畢后,將累積的結(jié)果轉(zhuǎn)換為一個(gè)最終的表示(這是一個(gè)可選操作);

Collectors本身提供了關(guān)于Collector的常見(jiàn)匯聚實(shí)現(xiàn),Collectors的內(nèi)部類(lèi)CollectorImpl實(shí)現(xiàn)了Collector接口,Collectors本身實(shí)際上是一個(gè)
工廠。

2.1 變成ConcurrentMap

//返回將Collector元素累積到其中 ConcurrentMap的并發(fā)函數(shù),其鍵和值是將提供的映射函數(shù)應(yīng)用于輸入元素的結(jié)果。
static <T,K,U> Collector<T,?,ConcurrentMap<K,U>>?? ?toConcurrentMap(Function<? super T,? extends K> keyMapper,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? ?Function<? super T,? extends U> valueMapper)

//返回將Collector元素累積到其中 ConcurrentMap的并發(fā)函數(shù),其鍵和值是將提供的映射函數(shù)應(yīng)用于輸入元素的結(jié)果。
static <T,K,U> Collector<T,?,ConcurrentMap<K,U>>?? ?toConcurrentMap(Function<? super T,? extends K> keyMapper,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? ?Function<? super T,? extends U> valueMapper,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? ?BinaryOperator<U> mergeFunction)
//返回將Collector元素累積到其中 ConcurrentMap的并發(fā)函數(shù),其鍵和值是將提供的映射函數(shù)應(yīng)用于輸入元素的結(jié)果。
static <T,K,U,M extends ConcurrentMap<K,U>> Collector<T,?,M> ? ?toConcurrentMap(
? ? ? ? ? ? ? ? ? ? ? ? ? ? Function<? super T,? extends K> keyMapper,?
?? ??? ??? ??? ??? ??? ??? ?Function<? super T,? extends U> valueMapper,?
?? ??? ??? ??? ??? ??? ??? ?BinaryOperator<U> mergeFunction,?
?? ??? ??? ??? ??? ??? ??? ?Supplier<M> mapSupplier
?? ??? ??? ??? ??? ? )

2.2 變成Map

static <T,K,U> Collector<T,?,Map<K,U>> toMap(Function<? super T,? extends K> keyMapper,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Function<? super T,? extends U> valueMapper)

//1、當(dāng)key重復(fù)時(shí),會(huì)拋出異常:java.lang.IllegalStateException: Duplicate key?
//2、當(dāng)value為null時(shí),會(huì)拋出異常:java.lang.NullPointerException

案例:

List<Person>integerList=newArrayList<>();
integerList.add(new Person("a",3));
integerList.add(new Person("b",3));
integerList.add(new Person("c",3));
integerList.add(new Person("d",2));
integerList.add(new Person("e",2));
integerList.add(new Person("f",2));
Mapmap=integerList.stream().collect(Collectors.toMap(Person::getName,Person::getAge));
System.out.println(map);//{a=3, b=3, c=3, d=2, e=2, f=2}
//第三個(gè)參數(shù)用在key值沖突的情況下:如果新元素產(chǎn)生的key在Map中已經(jīng)出現(xiàn)過(guò)了,第三個(gè)參數(shù)就會(huì)定義解決的辦法。
static <T,K,U> Collector<T,?,Map<K,U>> toMap( ?Function<? super T,? extends K> keyMapper,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? ? Function<? super T,? extends U> valueMapper,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? ? BinaryOperator<U> mergeFunction)

案例:

List<Person> integerList = new ArrayList<>();
integerList.add(new Person("a",3));
integerList.add(new Person("b",3));
integerList.add(new Person("c",3));
integerList.add(new Person("d",2));
integerList.add(new Person("e",2));
integerList.add(new Person("e",3));

Collections.sort(integerList,comparator);
System.out.println(integerList);*/
Map map =integerList.stream().collect(Collectors.toMap(Person::getName,Person::getAge,(a,b)->a+b));
System.out.println(map);//{a=3, b=3, c=3, d=2, e=5}
//返回將Collector元素累積到 Map其鍵中的值,其值是將提供的映射函數(shù)應(yīng)用于輸入元素的結(jié)果。
static <T,K,U,M extends Map<K,U>> Collector<T,?,M> ?toMap( Function<? super T,? extends K> keyMapper,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?Function<? super T,? extends U> valueMapper,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?BinaryOperator<U> mergeFunction,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?Supplier<M> mapSupplier)

2.3 變成Collection

static <T> Collector<T,?,List<T>> toList()
static <T> Collector<T,?,Set<T>> ?toSet() ?
//自定義?
static <T,C extends Collection<T>> ?Collector<T,?,C> ?toCollection(Supplier<C> collectionFactory)

案例:

List<Person> integerList = new ArrayList<>();
integerList.add(new Person("a",3));
integerList.add(new Person("b",3));
integerList.add(new Person("c",3));
integerList.add(new Person("d",2));
integerList.add(new Person("e",2));
integerList.add(new Person("e",3));
List<Integer> list= integerList.stream().map(Person::getAge).collect(Collectors.toList());
System.out.println(list);//[3, 3, 3, 2, 2, 3]
System.out.println(list.getClass());//class java.util.ArrayList
Set<Integer>set=integerList.stream().map(Person::getAge).collect(Collectors.toSet());
System.out.println(set);//[2, 3]
System.out.println(set.getClass());//class java.util.HashSet
LinkedList<Integer>linkedList=integerList.stream().map(Person::getAge).collect(Collectors.toCollection(LinkedList::new));
System.out.println(linkedList);//[3, 3, 3, 2, 2, 3]
System.out.println(linkedList.getClass());//class java.util.LinkedList

2.4 變成String

static Collector<CharSequence,?,String>?? ?joining()
//delimiter分隔符連接
static Collector<CharSequence,?,String>?? ?joining(CharSequence delimiter)?
//prefix前綴
//suffix后綴
static Collector<CharSequence,?,String>?? ?joining(CharSequence delimiter, CharSequence prefix, CharSequence suffix)

案例:

List<Person> integerList = newArrayList<>();
integerList.add(new Person("a",3));
integerList.add(new Person("b",3));
integerList.add(new Person("c",3));
integerList.add(new Person("d",2));
integerList.add(new Person("e",2));
integerList.add(new Person("e",3));
Stringlist = integerList.stream().map(Person::getName).collect(Collectors.joining());
System.out.println(list);//abcdee
Stringset = integerList.stream().map(Person::getName).collect(Collectors.joining(","));
System.out.println(set);//a,b,c,d,e,e
StringlinkedList = integerList.stream().map(Person::getName).collect(Collectors.joining(",","(",")"));
System.out.println(linkedList);//(a,b,c,d,e,e)

2.5 計(jì)算最值

static <T> Collector<T,?,Optional<T>> ?maxBy(Comparator<? super T> comparator)?
static <T> Collector<T,?,Optional<T>> ?minBy(Comparator<? super T> comparator)

案例:

List<Person> integerList = new ArrayList<>();
integerList.add(new Person("a",1));
integerList.add(new Person("b",2));
integerList.add(new Person("c",3));
integerList.add(new Person("d",4));
integerList.add(new Person("e",5));
integerList.add(new Person("e",6));
Optional<Person> person = integerList.stream().collect(Collectors.maxBy(Comparator.comparing(Person::getAge)));
System.out.println(person.get());//Person{name='e',age='6'}

2.6 平均值

static <T> Collector<T,?,Double> averagingDouble(ToDoubleFunction<? super T> mapper)
static <T> Collector<T,?,Double> averagingInt(ToIntFunction<? super T> mapper)
static <T> Collector<T,?,Double> averagingLong(ToLongFunction<? super T> mapper)

案例:
 

List<Person> integerList = new ArrayList<>();
integerList.add(new Person("a",1));
integerList.add(new Person("b",1));
integerList.add(new Person("c",1));
integerList.add(new Person("d",1));
integerList.add(new Person("e",1));
integerList.add(new Person("e",1));
double number=integerList.stream().collect(Collectors.averagingDouble(Person::getAge));
System.out.println(number);//1.0

2.7 統(tǒng)計(jì)數(shù)據(jù)

static <T> Collector<T,?,DoubleSummaryStatistics> summarizingDouble(ToDoubleFunction<? super T> mapper)
static <T> Collector<T,?,IntSummaryStatistics>?? ? summarizingInt(ToIntFunction<? super T> mapper)?
static <T> Collector<T,?,LongSummaryStatistics> summarizingLong(ToLongFunction<? super T> mapper)

DoubleSummaryStatistics,IntSummaryStatistics,LongSummaryStatistics 用于收集統(tǒng)計(jì)數(shù)據(jù)(如計(jì)數(shù),最小值,最大值,總和和平均值)的狀態(tài)對(duì)象。
此實(shí)現(xiàn)不是線程安全的。但是,Collectors.toXXXStatistics()在并行流上使用是安全的 ,因?yàn)椴⑿袑?shí)現(xiàn)Stream.collect() 提供了必要的分區(qū),隔離和合并結(jié)果,以實(shí)現(xiàn)安全有效的并行執(zhí)行。

他們的方法如下:

void accept(int value)//添加一個(gè)值
void combine(IntSummaryStatistics other)//將另一個(gè)的狀態(tài)合并IntSummaryStatistics到這個(gè)狀態(tài)中。
double getAverage()//算術(shù)平均值,如果沒(méi)有記錄值,則返回零。
long getCount()//返回記錄的值的計(jì)數(shù)。
int getMax()//返回記錄的最大值,或者Integer.MIN_VALUE沒(méi)有記錄值。
int getMin()//返回記錄的最小值,或者Integer.MAX_VALUE沒(méi)有記錄值。
long getSum()//返回記錄的值的總和,如果沒(méi)有記錄值,則返回零。
String toString()//返回對(duì)象的字符串表示形式。

案例:

List<Person> integerList = new ArrayList<>();
integerList.add(new Person("a",1));
integerList.add(new Person("b",2));
integerList.add(new Person("c",3));
integerList.add(new Person("d",4));
integerList.add(new Person("e",5));
integerList.add(new Person("e",6));

DoubleSummaryStatistics number = integerList.stream().collect(Collectors.summarizingDouble(Person::getAge));
System.out.println(number.getMax());//6
System.out.println(number.getMin());//1.0
System.out.println(number.getSum());//21.0
System.out.println(number.getAverage());//3.5
number.accept(100);
System.out.println(number.getMax());//100.0

2.8 求和

static <T> Collector<T,?,Double> summingDouble(ToDoubleFunction<? super T> mapper)?? ?
static <T> Collector<T,?,Integer> summingInt(ToIntFunction<? super T> mapper)?? ?
static <T> Collector<T,?,Long>?? ?summingLong(ToLongFunction<? super T> mapper)

2.9 reducing函數(shù)

//op 縮減的函數(shù)
static <T> Collector<T,?,Optional<T>> reducing(BinaryOperator<T> op) ?? ?
//identity儲(chǔ)存器初始值
static <T> Collector<T,?,T> reducing(T identity, BinaryOperator<T> op)
//mapper作用的數(shù)值
static <T,U> Collector<T,?,U>?? ?reducing(U identity, Function<? super T,? extends U> mapper, BinaryOperator<U> op)

案例:

List<Person> integerList = new ArrayList<>();
integerList.add(new Person("a",1));
integerList.add(new Person("b",0));
integerList.add(new Person("c",0));
integerList.add(new Person("d",0));
integerList.add(new Person("e",0));
integerList.add(new Person("e",0));

Integernumber = integerList.stream().collect(Collectors.reducing(1,Person::getAge,(a,b)->a+b));
System.out.println(number);//2

2.10 計(jì)數(shù)

//返回Collector類(lèi)型的接受元素,T用于計(jì)算輸入元素的數(shù)量。
static <T> Collector<T,?,Long>?? ?counting()

2.11 分組-變成map

//classifier分組依據(jù)函數(shù)
static <T,K> Collector<T,?,Map<K,List<T>>> groupingBy(Function<? super T,? extends K> classifier)

案例:

List<Person> integerList = new ArrayList<>();
integerList.add(new Person("a",1));
integerList.add(new Person("a",2));
integerList.add(new Person("a",3));
integerList.add(new Person("b",4));
integerList.add(new Person("b",5));
integerList.add(new Person("b",6));
?? ?
Map map =i ntegerList.stream().collect(Collectors.groupingBy(Person::getName));
System.out.println(map);
{
a=[Person{name='a', age='1'}, Person{name='a', age='2'}, Person{name='a', age='3'}],?
b=[Person{name='b', age='4'}, Person{name='b', age='5'}, Person{name='b', age='6'}]
}
//downstream將小組內(nèi)對(duì)象進(jìn)行處理
static <T,K,A,D> Collector<T,?,Map<K,D>>?? ?groupingBy(Function<? super T,? extends K> classifier,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Collector<? super T,A,D> downstream)


//mapFactory中間操作
static <T,K,D,A,M extends Map<K,D>> Collector<T,?,M> ?groupingBy(Function<? super T,? extends K> classifier,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? ? Supplier<M> mapFactory,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? ? Collector<? super T,A,D> downstream)

案例:

List<Person> integerList = newArrayList<>();
integerList.add(new Person("a",1));
integerList.add(new Person("a",2));
integerList.add(new Person("a",3));
integerList.add(new Person("b",4));
integerList.add(new Person("b",5));
integerList.add(new Person("b",6));
Map map= i ntegerList.stream()
? ? ? ? ? ? ? ? ? ? .collect(Collectors.groupingBy(Person::getName,Collectors.reducing(0,Person::getAge,(a,b)->a+b)));
System.out.println(map);//{a=6, b=15}
Map map = integerList.stream()
? ? ? ? ? ? ? ? ? ? .collect(Collectors.groupingBy(Person::getName,TreeMap::new,Collectors.reducing(0,Person::getAge,(a,b)->a+b)));
System.out.println(map.getClass());//classjava.util.TreeMap

2.12 分組-變成ConcurrentMap

static <T,K> Collector<T,?,ConcurrentMap<K,List<T>>>?? ?groupingByConcurrent(Function<? super T,? extends K> classifier)
static <T,K,A,D> Collector<T,?,ConcurrentMap<K,D>>?? ?groupingByConcurrent(Function<? super T,? extends K> classifier,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? ? Collector<? super T,A,D> downstream)
static <T,K,A,D,M extends ConcurrentMap<K,D>> Collector<T,?,M> groupingByConcurrent(Function<? super T,? extends K> classifier,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? ? Supplier<M> mapFactory,?
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? ? Collector<? super T,A,D> downstream)

2.13 分割流

//predicate分區(qū)的依據(jù)
static <T> Collector<T,?,Map<Boolean,List<T>>>?? ? partitioningBy(Predicate<? super T> predicate)

static <T,D,A> Collector<T,?,Map<Boolean,D>>?? ?partitioningBy(Predicate<? super T> predicate, Collector<? super T,A,D> downstream)

2.14 收集器

通過(guò)在累積之前將映射函數(shù)應(yīng)用于每個(gè)輸入Collector元素,使類(lèi)型的接受元素適應(yīng)一個(gè)接受類(lèi)型的U元素T。

static <T,U,A,R> Collector<T,?,R>?? ?mapping(Function<? super T,? extends U> mapper, Collector<? super U,A,R> downstream)

案例:

List<Person> integerList = new ArrayList<>();
integerList.add(new Person("a",1));
integerList.add(new Person("a",2));
integerList.add(new Person("a",3));
integerList.add(new Person("b",4));
integerList.add(new Person("b",5));
integerList.add(new Person("b",6));

List list = integerList.stream().collect(Collectors.mapping(Person::getName,Collectors.toList()));

System.out.println(list);//[a, a, a, b, b, b]

2.15 收集之后繼續(xù)做一些處理

static <T,A,R,RR> Collector<T,A,RR>?? ?collectingAndThen(Collector<T,A,R> downstream, Function<R,RR> finisher)

到此這篇關(guān)于java收集器Collector詳情的文章就介紹到這了,更多相關(guān)java收集器 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot配置ShedLock分布式定時(shí)任務(wù)

    SpringBoot配置ShedLock分布式定時(shí)任務(wù)

    ShedLock是一個(gè)在分布式環(huán)境中使用的定時(shí)任務(wù)框架,這篇文章主要介紹了SpringBoot配置ShedLock分布式定時(shí)任務(wù),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Mybatis示例講解注解開(kāi)發(fā)中的單表操作

    Mybatis示例講解注解開(kāi)發(fā)中的單表操作

    這篇文章主要介紹了使用Mybatis對(duì)數(shù)據(jù)庫(kù)進(jìn)行單表操作的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • java中spi使用詳解

    java中spi使用詳解

    java中spi(service provider interface)是jdk內(nèi)置的一種服務(wù)發(fā)現(xiàn)機(jī)制,可以基于配置,在運(yùn)行時(shí)加載指定服務(wù)。這篇文章主要介紹了java中spi使用,需要的朋友可以參考下
    2020-09-09
  • Java文件基本操作總結(jié)

    Java文件基本操作總結(jié)

    今天給大家?guī)?lái)的是關(guān)于Java基礎(chǔ)的相關(guān)知識(shí),文章圍繞著Java文件操作展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 登陸驗(yàn)證碼kaptcha結(jié)合spring boot的用法詳解

    登陸驗(yàn)證碼kaptcha結(jié)合spring boot的用法詳解

    在一個(gè)web應(yīng)用中驗(yàn)證碼是一個(gè)常見(jiàn)的元素。不管是防止機(jī)器人還是爬蟲(chóng)都有一定的作用,下面這篇文章主要給大家介紹了登陸驗(yàn)證碼kaptcha結(jié)合spring boot用法的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-06-06
  • Java中使用HashMap時(shí)指定初始化容量性能解析

    Java中使用HashMap時(shí)指定初始化容量性能解析

    這篇文章主要為大家介紹了Java中使用HashMap時(shí)指定初始化容量性能解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 在SpringBoot中利用RocketMQ實(shí)現(xiàn)批量消息消費(fèi)功能

    在SpringBoot中利用RocketMQ實(shí)現(xiàn)批量消息消費(fèi)功能

    RocketMQ 是一款分布式消息隊(duì)列,支持高吞吐、低延遲的消息傳遞,對(duì)于需要一次處理多條消息的場(chǎng)景,RocketMQ 提供了批量消費(fèi)的機(jī)制,這篇文章將展示如何在 Spring Boot 中實(shí)現(xiàn)這一功能,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-11-11
  • MyBatisPlus的IService接口實(shí)現(xiàn)

    MyBatisPlus的IService接口實(shí)現(xiàn)

    MyBatisPlus是一個(gè)為MyBatis提供增強(qiáng)的工具,它通過(guò)IService接口簡(jiǎn)化了數(shù)據(jù)庫(kù)的CRUD操作,IService接口封裝了一系列常用的數(shù)據(jù)操作方法,本文就來(lái)介紹一下,感興趣的可以了解一下
    2024-10-10
  • 使用SpringBoot Actuator監(jiān)控應(yīng)用示例

    使用SpringBoot Actuator監(jiān)控應(yīng)用示例

    Actuator是Spring Boot提供的對(duì)應(yīng)用系統(tǒng)的自省和監(jiān)控的集成功能,可以對(duì)應(yīng)用系統(tǒng)進(jìn)行配置查看、相關(guān)功能統(tǒng)計(jì)等。這篇文章主要介紹了使用SpringBoot Actuator監(jiān)控應(yīng),有興趣的可以了解一下
    2018-05-05
  • Java socket字節(jié)流傳輸示例解析

    Java socket字節(jié)流傳輸示例解析

    這篇文章主要為大家詳細(xì)介紹了Java socket字節(jié)流傳輸示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評(píng)論

龙里县| 丰都县| 隆化县| 平乡县| 峡江县| 九江县| 昌宁县| 两当县| 汉源县| 上饶市| 东兰县| 夏河县| 修文县| 普陀区| 永定县| 仪陇县| 乌恰县| 大安市| 政和县| 吕梁市| 桃园市| 礼泉县| 鹤山市| 宜宾县| 光山县| 巴彦县| 瓦房店市| 东丰县| 成安县| 卓资县| 栾城县| 宝应县| 三原县| 鹰潭市| 泰兴市| 清河县| 新乡县| 河东区| 姚安县| 宝鸡市| 锡林浩特市|