** obervableMethods();
//map操作符
mapOpretor();
//flatMapOpretor操作符
flatMapOpretor();
//groupByOpretor操作符
groupByOperator();
//filter操作符
filterOperator();
//distinct过滤掉重复的数据项
distinctOperator();
//ignoreElements 不发送任何数据
ignoreElemtents();
//elementAt 自发送第N项数据
elementAtOperator();
//window操作符
windowO` /**
* window操作符
* */
private static void windowOperator() {
Observable.just(78,88,9,845,21,5,6,8)
.window(3)
.subscribe(new Consumer<Observable>() {
@Override
public void accept(Observable integerObservable) throws Exception {
System.out.println(“On next”);
integerObservable.subscribe(new Consumer() {
@Override
public void accept(Integer integer) throws Exception {
System.out.println(“accept”+integer);
}
});
}
});
}
/**
* 发送第N项数据
* */
private static void elementAtOperator() {
Observable.just(1,5,7,8,9,52,68)
.elementAt(8,78)
.subscribe(new Consumer<Integer>() {
@Override
public void accept(Integer integer) throws Exception {
System.out.println(integer+"第N项数据");
}
});
}
/**
* 不发送任何数据
* */
private static void ignoreElemtents() {
Observable.just(102,3,34,42,3)
.ignoreElements()
.subscribe(new Action() {
@Override
public void run() throws Exception {
System.out.println("空数据发送成功!");
}
});
}
/**
* distinct过滤掉重复的数据
*
* */
private static void distinctOperator() {
Observable.just(2,3,4,2,3,4)
.distinct()
.subscribe(new Consumer<Integer>() {
@Override
public void accept(Integer integer) throws Exception {
System.out.println(integer+"过滤");
}
});
}
/**
* //filter操作符
* */
private static void filterOperator() {
Observable.just(1,3,5,6,3,64,3,2,53,5)
.filter(new Predicate<Integer>() {
@Override
public boolean test(Integer integer) throws Exception {
return integer!=-1;
}
}).subscribe(new Consumer<Integer>() {
@Override
public void accept(Integer integer) throws Exception {
System.out.println(integer+"");
}
});
}
/**
*groupByOpretor操作符
*
*/
private static void groupByOperator() {
Observable.range(1,8)
.groupBy(new Function<Integer, String>() {
@Override
public String apply(Integer integer) throws Exception {
return (integer%2==0?"偶数":"奇数");
}
})
.subscribe(new Consumer<GroupedObservable<String, Integer>>() {
@Override
public void accept(final GroupedObservable<String, Integer> stringIntegerGroupedObservable) throws Exception {
if(stringIntegerGroupedObservable.getKey().equals("奇数")){
stringIntegerGroupedObservable.subscribe(new Consumer<Integer>() {
@Override
public void accept(Integer integer) throws Exception {
System.out.println(stringIntegerGroupedObservable.getKey()+integer);
}
});
}
}
});
}
/**
*flatMapOpretor操作符
*
*/
private static void flatMapOpretor() {
User user = new User();
user.username = "殷鹏";
user.addresses = new ArrayList<>();
User.Address address = new User.Address();
address.city = "北京";
address.street = "朝阳北路";
user.addresses.add(address);
// Observable.just(user)
// .map(new Function<User, List<User.Address>>() {
// @Override
// public List<User.Address> apply(User user) throws Exception {
// return user.addresses;
// }
// }).subscribe(new Consumer<List<User.Address>>() {
// @Override
// public void accept(List<User.Address> addresses) throws Exception {
// System.out.println(addresses.get(0).city);
// System.out.println(addresses.get(0).street);
// }
// });
Observable.just(user)
.flatMap(new Function<User, ObservableSource<User.Address>>() {
@Override
public ObservableSource<User.Address> apply(User user) throws Exception {
return Observable.fromIterable(user.addresses);
}
})
.subscribe(new Consumer<User.Address>() {
@Override
public void accept(User.Address address) throws Exception{
System.out.println(address.street);
}
});
}
/***
*map操作符
*/
private static void mapOpretor() {
Observable.just("HELLO")
.map(new Function<String, String>() {
@Override
public String apply(String s) throws Exception {
return s.toLowerCase();
}
})
.map(new Function<String, String>() {
@Override
public String apply(String s) throws Exception {
return "改变hello";
}
}).subscribe(new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(String s) {
System.out.println(s);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
private static void obervableMethods() {
new Observable<String>(){
@Override
protected void subscribeActual(Observer<? super String> observer) {
observer.onNext("好地方");
observer.onNext("好地方");
observer.onNext("好地方");
observer.onComplete();
}
}.subscribe(new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(String s) {
System.out.println(s);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
System.out.println("数据接收完毕Q!");
}
});
}`perator();**