API

https://docs.oracle.com/en/java/javase/11/docs/api/index.html

模块,包,类

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

Object

image.png
构造:Object()

  • hashcode()
  • getclass()
  • toString()
  • equals()

String

image.png
构造:String(byte[] …) String(char[] …)

  • 判断
    • equals()
    • startsWith()
    • isEmpty()
  • 获取
  • 转换

StringBuilder & StringBuffer

image.png

  • 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);

  1. 使用StringBuilder拼接字符串时不需要创建新的对象
  • StringBuilder和StringBuffer有类似的api
    • append()
    • toString():将StringBuilder对象转为String对象

Scanner

image.png


集合(java的数据结构)

基础

  • 集合是元素的容器
  • 存放的是引用类型,数组存放的是基本类型或引用类型

image.png

  • List是接口

public interface List extends Collection

  • ArrayList是List接口的一个实现类

public class ArrayList extends AbstractList implements List

Java标准库自带的java.util包提供了集合类:Collection,它是除Map外所有其他集合类的根接口。Java的java.util包主要提供了以下三种类型的集合:

  • List:一种有序列表的集合,例如,按索引排列的StudentList
  • Set:一种保证没有重复元素的集合,例如,所有无重复名称的StudentSet
  • Map:一种通过键值(key-value)查找的映射表集合,例如,根据Studentname查找对应StudentMap

Java集合的设计有几个特点:一是实现了接口和实现类相分离,例如,有序表的接口是List,具体的实现类有ArrayListLinkedList等,二是支持泛型,我们可以限制在一个集合中只能放入同一种数据类型的元素,例如:

  1. 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());
}

  1. for(Object obj : list){<br /> System._out_.println(obj); ------------> obj.toString() --------> 用的是StudenttoString()<br />// System.out.println(obj.getAge());<br /> }
  • 迭代器

public interface Iterator

  • 可以在遍历集合的同时,对集合里的元素进行添加和删除
  • 可以用统一的模式遍历Collection
  • hasNext():如果仍有元素可以迭代,返回True
  • next():返回迭代的下一个元素对象
    1. for (Iterator<String> it = list.iterator(); it.hasNext(); ) {
    2. String s = it.next();
    3. System.out.println(s);
    4. }

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));
}
}

使用步骤

  • 创建集合对象
  • 创建元素对象
  • 添加元素到集合中
  • 遍历集合

    List:有序,可重复

    List<Integer> list = new ArrayList<>();

  • add()

  • get()
  • size()

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()