1.集合:collection
List (列表):有序、里面的元素可重复,可变长度
List是接口,常用的实现类:ArrayList(可变长度的数组)、LinkedList(链接结构)、Vector
ArrayList:遍历元素、随机访问元素,效率比较高
LinkedList:掺入或者删除元素时,效率比较高//增加元素
names.add("hh");
// 删除元素
String n = names.remove(0); // 删除下标时返回的是 删除的值
System.out.println("删除索引为0的元素,元素的值为:"+n);
boolean bool= names.remove("cc"); // 删除值的话,返会的是bool值
System.out.println("删除cc的结果:"+bool);
// 修改元素的值
names.set(0,"qq"); //根据索引改列表的值
//获取元素的值,数组用[0]取值,列表用get方法
System.out.println(names.get(0));
//获取列表长度
System.out.println(names.size());
//查询,是否包含某个元素
System.out.println(names.contains("bb")); // 返回的是bool值2.Set:无序的,不允许重复。Set是接口 TreeSet、HashSet 是用的得比较多的实现类Set<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(1); // 重复得元素加不进去。
System.out.println(set);
//Set 元素无序,索引无意义,所以没有set.get类方法。
// remove.size.contains
// 只能用 foreach遍历
List<Integer> aa = Arrays.asList(1,2,3,1,2,3,4,5,2,2);
List<Integer> bb = quChong(aa);
System.out.println(bb);
}
利用Set不能有重复元素的特点,可以实现对列表去重。
封装一个静态方法,输入一个列表,对列表去重后,返回列表。
public static List<Integer> quChong (List<Integer> aa){
//List 转成Set
HashSet<Integer>set = new HashSet<>();
set.addAll((aa));
//Set 转成List
List<Integer> bb = new ArrayList<>();
bb.addAll(set);
return bb;3.Map:HashMap. TreeMap 是字典的实现类。Key-value,key不允许重复,是用Set来存放的//<String,String> 分别是key.valu 的类型。
Map<String,String> map = new HashMap<>();
//添加元素
map.put("CNY","人民币");
map.put("USD","美元");
map.put("HKD","港币");
map.put("JPY","日元");
//修改元素
map.put("CNY","Chinese Yuan");
System.out.println(map);
//删除元素 remove ,根据key删除,返回可以对应的valu
System.out.println(map.remove("JPY"));
// 查询key是否存在,containsKey
System.out.println(map.containsKey("GBP"));
//查询key是否存在,containsValue
System.out.println( map.containsValue("港币"));
//根据key取元素,get
System.out.println(map.get("USD"));
System.out.println(map.get("aaa")); //不存在返回null
4.Collections:集合的工具类,提供了方法,操作List,Set,MapList<Integer> nums = Arrays.asList(60,70,80,90,40,20,10);
System.out.println(Collections.max(nums));
System.out.println(Collections.min(nums));
Collections.sort(nums); // 排序,从小到大排序
System.out.println(nums);
//二分查找 ,查不到返回 -(插入点+1)
int index = Collections.binarySearch(nums,40);
System.out.println(index);
//查到返回索引
index = Collections.binarySearch(nums,40);
System.out.println(index);
//翻转列表
Collections.reverse(nums);
//将列表乱序
Collections.shuffle(nums);
5.异常处理:try, catch ,finally, throw ,throwsScanner in = new Scanner(System.in);
System.out.println("输入一个字符串:");
String str = in.next();
//输入的字符串认为是8进制的,将其转成十进制
//非8进制 Java.lang.NumberFormatException
//小数 java.lang.NumberFormatException
try {
int value = Integer.valueOf(str, 8);
}catch(Exception e ){
System.out.println(e.getMessage());
} finally{
System.out.println("执行结束"); // 不管有没有异常,都会执行到
}
Person p = new Person();
//当调用的方法抛出异常时 1.该方法声明抛出一个异常 2.try-catch处理异常
try{
p.setGender('女');
p.setGender('鬼');
}catch(Exception e){
System.out.println(e.getMessage());
e.printStackTrace();//打印调用栈
调用栈,也就是方法间的调用关系
java.lang.Exception: 性别只能是男和女。
at day05.Person.setGender(Demo06.java:64)
at day05.Demo06.main(Demo06.java:31)
}
//Java最常见的异常:空指针的异常。
//对象是null,调用里面的方法会出现空指针异常。
Person p1 = null;
//空指针异常一般不用try-cath捕获,而是在调用方法前判空。
if(p1 !=null) {
p1.setName("aaa");//java.lang.NullPointerException
}
|