4.继承,多态,接口
abstract 抽象
extends 继承
implements 接口
父类可以调用给子类 接口里 + default void showB(){ 可以输出 }
public void siyang(Animal c){ public void use(USB u){
System.out.println("饲养动物"); u.openUSB(); notebook n = new notebook();
c.eat(); u.closeUSB(); mouse m = new mouse(); n.use(m);
c.drink();
匿名内部类 两种 这种是要下面有方面调用的
↓ ↓ ↓
接口 i = new 接口(): new 接口(){ 方法(new 接口(){
重写方法 重写方法}.调用方法 重写方法};
调用方法
Math.abs(绝对值) Math.pow(a.b) 幂 Arrays.sort()按顺序排序
Math.ceil(大于等于整数)
Math.floor(小于等于整数)
Math.round(四舍五入int) String[] strArray =S s.split() 使数组分离
Integer 装箱 拆箱
String s =String.valueof(i) int y =Integer.parseInt(s)
Int转String String转Int
加数字=从1970年加毫秒
↓
Date d = new Date();
String s =sdf.format(d);
System.out.println(s); 输出当天年月
定义格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd") 这是一个类,才能用方法
Date转String String转Date 解析 年 - 月 - 日 - E(周几)
String s =sdf.format(“d") Date d = sdf.parse(“s”)
sout(s)
日历
Calendar c = Calendar.getInstance(); c.add(Calendar.YEAR,10); 增加10年
int year = c.get(Calendar.YEAR); c.set(year: mouth: date: ) 修改时间
int month = c.get(Calendar.MONTH)+1;
5. Collection集合
集合
Collection c =new ArrayList(); List list =new ArrayList();
c.remove(" "); 删除元素(变量要一模一样) list.add(1," ") 添加指定位置元素
c.clear(); 清除所有元素 list.remove(1, " ")删除指定位置元素,返回被删除元素
contains(Object o) 判断集合中是否存在指定的元素? list.set(1," ") 修改指定位置元素,返回被修改元素
boolean contains(Object o) 定义方法 list.get() 直接返回元素
LinkedList<String> link = new LinkedList<>();
迭代器 ←遍历→ list迭代器
Collection c =new ArrayList(); List list = new ArrayList();
Iterator it = c.iterator(); ListIterator sli = list.listIterator();
while (it.hasNext()) { while (sli.hasNext()){ 正向输出 sli.hasPrevious() 反向输出
String s = (String) it.next(); String s = (String) sli.next();
System.out.println(s); System.out.println(s);}
c.hasNext(); 从第一个开始判断是否存在元素
增强For 快捷键iter
for(定义类型 变量 :集合){
sout 变量}
for(String s : list){
sout s}
Set 无重复
s.hashCode() 获取哈希值
TreeSet<Student> ts = new TreeSet<Student>(); 就可以正常输出
this.age -s.age; 从小到大 this.age -s.age,
s1.getAge() - s2.getAge(); s.age - this.age 如果相等不输出
s.age - this.age
s2.getAge() - s1.getAge() 从大到小
public class Student implements Comparable<Student> 引用Comparable接口
1.在定义类 compareble
@Override
public int compareTo (Student s) {
int num =this.age -s.age;
int num2 = num ==0?this.name.compareTo(s.name):num;
return num2;
2.在测试类 Comparator比较器
TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {
@Override
public int compare (Student s1, Student s2) {
int num = s1.getAge() - s2.getAge();
int num2 = num == 0 ? s1.getName().compareTo(s2.getName()) : num;
return num2;
Generic 泛型 Generic可以随意写字母 通配符 Collection<?>
public class Generic<T> { Generic s = new Generic("aa",55);
private T name; System.out.println(s.getAge()+","+s.getName());
private T age;
public<T> void show(T z){
方法也可以泛型
6.Map(键唯一,一样后面替代前面)
HashMap 两个定义类型, Set 一个定义类型
键 值
map.put(String,String) 添加元素
map.get(String) 获取值
map.keySet () 获取所有键的集合
map.values() 获取所有值的集合
HashMap<String,String> map = new HashMap<String, String>();
增强for遍历 Student类型
Set<String> set = hm.keySet();
for ( String s : set ) {
Student value =hm.get(s);
System.out.println(s+","+value.getName()+","+value.getAge());
迭代器遍历
Iterator<String> it = set.iterator();
while (it.hasNext()){
String key = (String) it.next();
String value = map.get(key);
entrySet方法
Set<Map.Entry<String,String>> entr =map.entrySet();
Iterator<Map.Entry<String,String>> ite = entr.iterator();
while (ite.hasNext()){
Map.Entry<String,String> next =ite.next();
String key =next.getKey();
String value =next.getValue();
System.out.println(key+""+value);
}
for ( Map.Entry<String, String> entry : entr ) {
String key =entry.getKey();
String value = entry.getValue();
System.out.println(key+""+value);
}
7.Collectiones 具体的类
Collectiones.sort(list); 从小到大排序
Collectiones.reverse(list); 反转排序
Collectiones.shuffle(list); 随机排序 |
|