方法
package basic;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
//List使用方法
public class ListDemo {
public static void main(String[] args) {
// 实例化直接赋值
List<String> alpha = Arrays.asList("a", "b", "c", "d");
dataPrintByFE(alpha);
// 实例化List
List<String> lists = new ArrayList<String>();
// 添加元素
lists.add("a");
lists.add("b");
lists.add("c");
lists.add("d");
dataPrintByIt(lists);
lists.add(3, "e");
dataPrintByIt(lists);
// 修改元素
lists.set(4, "f");
dataPrintByIt(lists);
// 删除元素(index或object)
lists.remove(0);
lists.remove("b");
dataPrintByForEach(lists);
// 查询
String item = lists.get(1);
int n = lists.indexOf("f");
System.out.print("get:" + item + " indexOf:" + n);
// 遍歷(原始方法和新特性)
dataPrintByIt(lists);
dataPrintByForEach(lists);
// 清空
// lists.clear();
// 直接输出
System.out.println("直接输出:" + lists);
// Java8处理输出
List<String> collect = lists.stream().map(String::toUpperCase).collect(Collectors.toList());
System.out.println("Java8的stream输出:" + collect); // [A, B, C, D]
}
// 遍历list-原始方法
public static void dataPrintByIt(List<String> lists) {
Iterator<String> it = lists.iterator();
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
System.out.println();
}
// 遍历list-forEach方法,Java8新特性
public static void dataPrintByForEach(List<String> lists) {
lists.forEach((x) -> System.out.print(x + " "));
System.out.println();
}
// 遍历list-forEach方法
public static void dataPrintByFE(List<String> lists) {
for (String item : lists) {
System.out.print(item + " ");
}
System.out.println();
}
}
输出结果:
a b c d
a b c d
a b c e d
a b c e f
c e f
get:e indexOf:2c e f
c e f
直接输出:[c, e, f]
Java8的stream输出:[C, E, F]
118.杨辉三角1
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> result=new ArrayList<List<Integer>>();
for (int i=0;i<numRows;i++){
ArrayList<Integer> sub=new ArrayList<Integer>();
for (int j=0;j<=i;j++)
if (j==0 || j==i) sub.add(1);
else sub.add(result.get(i-1).get(j-1)+result.get(i-1).get(j));
result.add(sub);
}
return result;
}