您的位置:网站首页 > 社会信息 > 社会信息

jdk1.8新特性有哪些(jdk1 8新特性)

摘要你们好,最近小活发现有诸多的小伙伴们对于jdk1.8新特性有哪些,jdk1 8新特性这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下

你们好,最近小活发现有诸多的小伙伴们对于jdk1.8新特性有哪些,jdk1 8新特性这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。

1、 1. Create a stream

2、 package com.stream.api1;

3、 import java.util.ArrayList;

4、 import java.util.Arrays;

5、 import java.util.List;

6、 import java.util.stream.Stream;

7、 import org.junit.Test;

8、

14、 public class TestStreamAPI1 {

15、 //Create a stream

16、 @Test

17、 public void test1() {

18、 //1.可以通过集合系列集合提供的stream()或parallelStream()。

19、 ListString list=new ArrayListString();

20、 StreamString stream1=list.stream();

21、 //2.通过数组中的静态方法stream()获取数组流。

22、 Employee[] ems=new Employee[10];

23、 StreamEmployee stream2=Arrays.stream(ems);

24、 //3.通过Stream类中()的静态方法。

25、 StreamString stream3=Stream.of('aa', 'bb', 'cc', 'dd');

26、 //4.创造无限的流动

27、 StreamInteger stream4=Stream.iterate(0, x - x + 2);

28、 //stream4.forEach(System.out:println);

29、 stream4.limit(10).forEach(System.out:println);

30、 //生成

31、 Stream.generate(() - Math.random()).limit(5).forEach(System.out:println);

32、 }

33、 }

34、 2.流过滤和切片

35、 package com.stream.api2;

36、 import java.util.Arrays;

37、 import java.util.Iterator;

38、 import java.util.List;

39、 import java.util.stream.Stream;

40、 import org.junit.Test;

41、 import com.stream.api1.Employee;

42、

48、 public class TestStreamAPI2 {

49、 列出雇员雇员=数组。阿斯利斯特(新雇员('张三,12,1200.99),新员工('小明' 15, 4500.99),

50、 New employees ('Xiaoli, 16,5500.99), new employees ('Wang Er, 32,1100.99), new employees ('Erhu' 22, 9825.99),

51、 New employees ('Li Jing, 18,4502.99), new employees ('Xiaosan, 17, 1469.99), new employees ('Xiaosan' 17,1469.99),

52、 New employees ('Little Three, 17, 1469.99), new employees ('Little Three' 17,1469.99));

53、 //中间操作

54、

62、 //内部迭代:迭代操作由Stream API完成。

63、 @Test

64、 public void test1() {

65、 //中间操作:不执行任何操作。

66、 StreamEmployee stream1=employees.stream().filter((e) - {

67、 Stream API intermediate operation');

68、 return e.getAge() 17;

69、 });

70、 //终止操作:一次性执行所有内容,即“懒求值”。

71、 stream1.forEach(System.out:println);

72、 }

73、 //外部迭代

74、 @Test

75、 public void test2() {

76、 IteratorEmployee it=employees.iterator();

77、 while (it.hasNext()) {

78、 System.out.println(it.next());

79、 }

80、 }

81、 //短路,limit一旦找到合适的数据将不再继续执行,一定程度上提高了性能

82、 @Test

83、 public void test3() {

84、 employees.stream().filter((e) - {

85、 System.out.println('短路!');

86、 return e.getSalary() 5000;

87、 }).limit(2).forEach(System.out:println);

88、 ;

89、 }

90、 @Test

91、 public void test4() {

92、 employees.stream().filter((e) - e.getSalary() 1000).skip(2).limit(2).forEach(System.out:println);

93、 ;

94、 }

95、 @Test

96、 public void test5() {

97、 employees.stream().filter((e) - e.getSalary() 1000).skip(2).distinct().forEach(System.out:println);

98、 ;

99、 }

100、 }

101、 /3、Stream映射

102、 package com.stream.api3;

103、 import java.util.ArrayList;

104、 import java.util.Arrays;

105、 import java.util.List;

106、 import java.util.stream.Stream;

107、 import org.junit.Test;

108、 import com.stream.api1.Employee;

109、 public class TestStreamAPI3 {

110、 ListEmployee employees=Arrays.asList(new Employee('张三', 12, 1200.99), new Employee('小明', 15, 4500.99),

111、 new Employee('小丽', 16, 5500.99), new Employee('王二', 32, 1100.99), new Employee('二虎', 22, 9825.99),

112、 new Employee('李静', 18, 4502.99), new Employee('小三', 17, 1469.99), new Employee('小三', 17, 1469.99),

113、 new Employee('小三', 17, 1469.99), new Employee('小三', 17, 1469.99));

114、

119、 @Test

120、 public void test6() {

121、 ListString list=Arrays.asList('aaa', 'bbb', 'bbb', 'ddd');

122、 list.stream().map((str) - str.toUpperCase()).forEach(System.out:println);

123、 System.out.println('---------------------------');

124、 employees.stream().map(Employee:getName).forEach(System.out:println);

125、 System.out.println('---------------------------');

126、 StreamStreamCharacter stream=list.stream().map(TestStreamAPI3:filterCharacter);

127、 stream.forEach((sm) - {

128、 sm.forEach(System.out:println);

129、 });

130、 System.out.println('---------------------------');

131、 StreamCharacter stream2=list.stream().flatMap(TestStreamAPI3:filterCharacter);

132、 stream2.forEach(System.out:println);

133、 }

134、 public static StreamCharacter filterCharacter(String str) {//add(Object obj) addAll(collection coll)

135、 ListCharacter list=new ArrayList();

136、 for (Character character : str.toCharArray()) {

137、 list.add(character);

138、 }

139、 return list.stream();

140、 }

141、 }

142、 4、Stream排序

143、 package com.stream.api4;

144、 import java.util.Arrays;

145、 import java.util.List;

146、 import org.junit.Test;

147、 import com.stream.api1.Employee;

148、 public class TestStreamAPI4 {

149、 ListEmployee employees=Arrays.asList(new Employee('张三', 12, 1200.99), new Employee('小明', 15, 4500.99),

150、 new Employee('小丽', 16, 5500.99), new Employee('王二', 32, 1100.99), new Employee('二虎', 22, 9825.99),

151、 new Employee('李静', 18, 4502.99), new Employee('小三', 17, 1469.99), new Employee('小三', 17, 1469.99),

152、 new Employee('小三', 17, 1469.99), new Employee('小三', 17, 1469.99));

153、

156、 @Test

157、 public void test1() {

158、 ListString list=Arrays.asList('ccc', 'aaa', 'bbb', 'ddd', 'eee');

159、 list.stream().sorted().forEach(System.out:println);

160、 System.out.println('--------------------------------------------');

161、 employees.stream().sorted((e1, e2) - {

162、 if (e1.getAge()==e2.getAge()) {

163、 return e1.getName().compareTo(e2.getName());

164、 } else {

165、 return Integer.compare(e1.getAge(), e2.getAge());

166、 }

167、 }).forEach(System.out:println);

168、 }

169、 }

170、 5、Stream查找与匹配

171、 package com.stream.api5;

172、 import java.util.Arrays;

173、 import java.util.List;

174、 import java.util.Optional;

175、 import org.junit.Test;

176、 import com.stream.api1.Employee;

177、 import com.stream.api1.Employee.Status;

178、 public class TestStreamAPI5 {

179、 ListEmployee employees=Arrays.asList(new Employee('张三', 12, 1200.99, Status.BUSY),

180、 new Employee('小明', 15, 4500.99, Status.BUSY), new Employee('小丽', 16, 5500.99, Status.BUSY),

181、 new Employee('王二', 32, 1100.99, Status.FREE), new Employee('二虎', 22, 9825.99, Status.FREE),

182、 new Employee('李静', 18, 4502.99, Status.FREE), new Employee('小三', 17, 1469.99, Status.VOCATION),

183、 new Employee('小三', 17, 1469.99, Status.VOCATION), new Employee('小三', 17, 1469.99, Status.VOCATION),

184、 new Employee('小三', 17, 1469.99, Status.VOCATION));

185、

190、 @Test

191、 public void test1() {

192、 boolean b1=employees.stream().allMatch(e - e.getStatus().equals(Status.BUSY));

193、 System.out.println(b1);

194、 boolean b2=employees.stream().anyMatch((e) - e.getStatus().equals(Status.BUSY));

195、 System.out.println(b2);

196、 boolean b3=employees.stream().noneMatch((e) - e.getStatus().equals(Status.BUSY));

197、 System.out.println(b3);

198、 OptionalEmployee op1=employees.stream().sorted((e1, e2) - -Double.compare(e1.getSalary(), e2.getSalary()))

199、 .findFirst();

200、 System.out.println(op1.get());

201、 OptionalEmployee op2=employees.stream().filter((e) - e.getStatus().equals(Status.FREE)).findAny();

202、 System.out.println(op2.get());

203、 OptionalEmployee op3=employees.parallelStream().filter((e) - e.getStatus().equals(Status.FREE)).findAny();

204、 System.out.println(op3.get());

205、 }

206、 @Test

207、 public void test2() {

208、 Long count=employees.stream().count();

209、 System.out.println(count);

210、 OptionalEmployee op1=employees.stream().max((e1, e2) - Double.compare(e1.getSalary(), e2.getSalary()));

211、 System.out.println(op1.get());

212、 OptionalDouble op2=employees.stream().map(Employee:getSalary).max(Double:compare);

213、 System.out.println(op2.get());

214、 }

215、 }

216、 6、Stream约与收集归

217、 package com.stream.api6;

218、 import java.util.Arrays;

219、 import java.util.DoubleSummaryStatistics;

220、 import java.util.HashSet;

221、 import java.util.List;

222、 import java.util.Map;

223、 import java.util.Optional;

224、 import java.util.Set;

225、 import java.util.stream.Collectors;

226、 import org.junit.Test;

227、 import com.stream.api1.Employee;

228、 import com.stream.api1.Employee.Status;

229、 public class TestStreamAPI6 {

230、 ListEmployee employees=Arrays.asList(new Employee('张三', 12, 1200.99, Status.BUSY),

231、 new Employee('小明', 15, 4500.99, Status.BUSY), new Employee('小丽', 16, 5500.99, Status.BUSY),

232、 new Employee('王二', 32, 1100.99, Status.FREE), new Employee('二虎', 22, 9825.99, Status.FREE),

233、 new Employee('李静', 18, 4502.99, Status.FREE), new Employee('小三', 17, 1469.99, Status.VOCATION),

234、 new Employee('小三', 17, 1469.99, Status.VOCATION), new Employee('小三', 17, 1469.99, Status.VOCATION),

235、 new Employee('小三', 17, 1469.99, Status.VOCATION));

236、

240、 @Test

241、 public void test1() {

242、 ListInteger list=Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

243、 Integer sum=list.stream().reduce(0, (x, y) - x + y);

244、 System.out.println(sum);

245、 System.out.println('-------------------------------------------');

246、 OptionalDouble op1=employees.stream().map(Employee:getSalary).reduce(Double:sum);

247、 System.out.println(op1.get());

248、 }

249、

252、 @Test

253、 public void test2() {

254、 ListString list=employees.stream().map(Employee:getName).collect(Collectors.toList());

255、 list.forEach(System.out:println);

256、 System.out.println('-----------------------');

257、 SetString set=employees.stream().map(Employee:getName).collect(Collectors.toSet());

258、 set.forEach(System.out:println);

259、 System.out.println('-----------------------');

260、 HashSetString hashSet=employees.stream().map(Employee:getName)

261、 .collect(Collectors.toCollection(HashSet:new));

262、 hashSet.forEach(System.out:println);

263、 }

264、 @Test

265、 public void test3() {

266、 //总数

267、 Long count=employees.stream().collect(Collectors.counting());

268、 System.out.println(count);

269、 System.out.println('-----------------------');

270、 //平均值

271、 Double avg=employees.stream().collect(Collectors.averagingDouble(Employee:getSalary));

272、 System.out.println(avg);

273、 System.out.println('-----------------------');

274、 //总和

275、 Double sum=employees.stream().collect(Collectors.summingDouble(Employee:getSalary));

276、 System.out.println(sum);

277、 System.out.println('-----------------------');

278、 //最大值

279、 OptionalEmployee max=employees.stream()

280、 .collect(Collectors.maxBy((e1, e2) - Double.compare(e1.getSalary(), e2.getSalary())));

281、 System.out.println(max.get());

282、 System.out.println('-----------------------');

283、 //最大值

284、 OptionalEmployee min=employees.stream()

285、 .collect(Collectors.minBy((e1, e2) - Double.compare(e1.getSalary(), e2.getSalary())));

286、 System.out.println(min.get());

287、 }

288、 //分组

289、 @Test

290、 public void test4() {

291、 MapStatus, ListEmployee map=employees.stream().collect(Collectors.groupingBy(Employee:getStatus));

292、 System.out.println(map);

293、 }

294、 //多级分组

295、 @Test

296、 public void test5() {

297、 MapStatus, MapString, ListEmployee map=employees.stream()

298、 .collect(Collectors.groupingBy(Employee:getStatus, Collectors.groupingBy((e) - {

299、 if (e.getAge() 16) {

300、 return '青年';

301、 } else if (e.getAge() 18) {

302、 return '中年';

303、 } else {

304、 return '老年';

305、 }

306、 })));

307、 System.out.println(map);

308、 }

309、 //分区

310、 @Test

311、 public void test6() {

312、 MapBoolean, ListEmployee map=employees.stream()

313、 .collect(Collectors.partitioningBy(e - e.getSalary() 5000));

314、 System.out.println(map);

315、 }

316、 @Test

317、 public void test7() {

318、 DoubleSummaryStatistics collect=employees.stream().collect(Collectors.summarizingDouble(Employee:getSalary));

319、 System.out.println(collect.getAverage());

320、 System.out.println(collect.getCount());

321、 System.out.println(collect.getMax());

322、 System.out.println(collect.getMin());

323、 System.out.println(collect.getSum());

324、 }

325、 @Test

326、 public void test8() {

327、 String str1=employees.stream().map(Employee:getName).collect(Collectors.joining());

328、 System.out.println(str1);

329、 System.out.println('---------------------------------');

330、 String str2=employees.stream().map(Employee:getName).collect(Collectors.joining(','));

331、 System.out.println(str2);

332、 System.out.println('---------------------------------');

333、 String str3=employees.stream().map(Employee:getName).collect(Collectors.joining(',', '===', '==='));

334、 System.out.println(str3);

335、 }

336、 }

337、 7、Stream约练习

以上就是jdk1 8新特性这篇文章的一些介绍,希望对大家有所帮助。

免责声明:本文章由会员“丁悦东”发布如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系