I feel this is much more similar to algorithm, let's go step by step
1) First get all the sublists by excluding first integer in each iteration
List list=Arrays.asList(640,480,520,170,320,140,60);
List> re = IntStream.range(0, list.size())
.mapToObj(sb->list.subList(sb, list.size()))
.filter(s->s.size()>1)
.collect(Collectors.toList());
re.forEach(ls->System.out.println(ls));
Output
[640, 480, 520, 170, 320, 140, 60]
[480, 520, 170, 320, 140, 60]
[520, 170, 320, 140, 60]
[170, 320, 140, 60]
[320, 140, 60]
[140, 60]
2) Now on each list do the sum
List> re1 = re.stream()
.map(j->IntStream.rangeClosed(2, j.size()).mapToObj(sl->j.stream().limit(sl).mapToInt(Integer::intValue).sum()).collect(Collectors.toList()))
.collect(Collectors.toList());
re1.forEach(ls->System.out.println(ls));
Output
[1120, 1640, 1810, 2130, 2270, 2330]
[1000, 1170, 1490, 1630, 1690]
[690, 1010, 1150, 1210]
[490, 630, 690]
[460, 520]
[200]
Combined solution of step 1 and step 2
List> re = IntStream.range(0, list.size())
.mapToObj(sb->list.subList(sb, list.size()))
.filter(s->s.size()>1)
.map(j->IntStream.rangeClosed(2, j.size()).mapToObj(sl->j.stream().limit(sl).mapToInt(Integer::intValue).sum()).collect(Collectors.toList()))
.collect(Collectors.toList());