API
https://docs.oracle.com/en/java/javase/11/docs/api/index.html
模块,包,类


隶属于java.base模块
java.lang.Object:java.lang包 中的Object类
Object

构造:Object()
- hashcode()
- getclass()
- toString()
- equals()
String

构造:String(byte[] …) String(char[] …)
- 判断
- equals()
- startsWith()
- isEmpty()
- 获取
- 转换
StringBuilder & StringBuffer

String string = new String(“hello”);
// 每次String字符串拼接都需要要创建新的对象
string = string + “world”;
System.out.println(string);StringBuilder stringBuilder = new StringBuilder(“hello”);
stringBuilder.append(“world”);
System.out.println(stringBuilder);
使用StringBuilder拼接字符串时不需要创建新的对象
- StringBuilder和StringBuffer有类似的api
- append()
- toString():将StringBuilder对象转为String对象
Scanner

集合(java的数据结构)
基础
- 集合是元素的容器
- 存放的是引用类型,数组存放的是基本类型或引用类型

- List是接口
public interface List
- ArrayList是List接口的一个实现类
public class ArrayList
Java标准库自带的java.util包提供了集合类:Collection,它是除Map外所有其他集合类的根接口。Java的java.util包主要提供了以下三种类型的集合:
List:一种有序列表的集合,例如,按索引排列的Student的List;Set:一种保证没有重复元素的集合,例如,所有无重复名称的Student的Set;Map:一种通过键值(key-value)查找的映射表集合,例如,根据Student的name查找对应Student的Map。
Java集合的设计有几个特点:一是实现了接口和实现类相分离,例如,有序表的接口是List,具体的实现类有ArrayList,LinkedList等,二是支持泛型,我们可以限制在一个集合中只能放入同一种数据类型的元素,例如:
List<String> list = new ArrayList<>(); // 只能放入String类型
最后,Java访问集合总是通过统一的方式——迭代器(Iterator)来实现,它最明显的好处在于无需知道集合内部元素是按什么方式存储的。
遍历
- 普通for
- for-each loop
for(Object obj : list){
Student stu = (Student)obj;
System.out.println(stu);——————> stu.toString()
System.out.println(stu.getAge());
}
for(Object obj : list){<br /> System._out_.println(obj); ------------> obj.toString() --------> 用的是Student的toString()<br />// System.out.println(obj.getAge());<br /> }
- 迭代器
public interface Iterator
- 可以在遍历集合的同时,对集合里的元素进行添加和删除
- 可以用统一的模式遍历Collection
- hasNext():如果仍有元素可以迭代,返回True
- next():返回迭代的下一个元素对象
for (Iterator<String> it = list.iterator(); it.hasNext(); ) {String s = it.next();System.out.println(s);}
Iterator it = list.iterator();
while(it.hasNext()){
Student stu = (Student)it.next();
System.out.println(stu);
}
ListIterator lit = list.listIterator();
while(lit.hasNext()){
Student stu = (Student)lit.next();
if(“c”.equals(stu.getName())){
lit.add(new Student(“d”, 10));
}
}
使用步骤
Set:无序,不可重复
@override equals()和hashCode()两个方法
Set<Integer> set = new HashSet<>();
- add()
- remove()
- contains()
Map:key-value
- put()
- Set
keySet():将所有的key作为Set返回 ```java Map map = new HashMap<>();
for (Integer key : map.keySet()) { Student stu = map.get(key); System.out.println(“key: “ + key + “ value: “ + stu); } ```
Collections
Collections是JDK提供的工具类,同样位于java.util包中。它提供了一系列静态方法,能更方便地操作各种集合。
- sort()
- max()
- reverse()
- shuffle()
