普通数据转换为集合(及比较的注意事项)
分可以更改大小用ArrayList<>(List.of(s)),不能改变大小直接Arrays.asList
package 七;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
public class toList {
public static void main(String[] args) {
String[] s={"234","34","43","23"};
List<String> list=new ArrayList<String>(List.of(s));//这样设置大小可以更改,
// 而 List<String> list=Arrays。asList(s),这样只能改变内容,而不能更改大小,如add,remove();
list.add("ppp");
list.forEach(System.out::println);
}
}
import java.util.*;
public class T1 {
public static void main(String[] args) {
// 普通数据转换为集合
// 字符串数组
String[] s1={"wfe","hhh","aaa","cbhwv"};
List<String> stringList= Arrays.asList(s1);
for(String i:stringList){
System.out.println(i);
}
System.out.println(stringList.get(2).compareTo(stringList.get(1)));//比较大小
// 数字型数组
Integer[] num={32,32,23,43,54,322,322};//这里的类型要用Integer,才能放入集合中。
List<Integer> integerList=Arrays.asList(num);
for(Integer i:integerList){
System.out.println(i);
}
int len=integerList.size();
// System.out.println(integerList.get(len-2)==(integerList.get(len-1))); 输出: false
System.out.println(integerList.get(len-2).compareTo(integerList.get(len-1))); //输出 true
//注意这里如果是要比较Integer的大小,不能直接用=,>=,<=,因为integer是一个对象,所以要用对象的比较方法。
// 如果要直接比较就要强制转换到int,另一个元素也自动拆封。
// System.out.println((int)integerList.get(len-2)==integerList.get(len-1));这条语句等同于上一条语句。
}
}
集合转普通数组:
import java.util.ArrayList;
import java.util.List;
public class T2 {
public static void main(String[] args) {
// 集合转换为普通数据。
List<String> list=new ArrayList<>();
list.add("aa");
list.add("bb");
list.add("cc");
String[] s=new String[list.size()];//先申请空间
list.toArray(s);//让list的元素复制到s数组中去
for(String i:s){
System.out.println(i);
}
}
}