3.1 接口设计
- 写程序先定义接口,人机交互和逻辑分离。
泛型容器类
private ArrayList<String> notes = new ArrayList<String>();
- 容器类有两个类型:
- 容器的类型(泛型:ArrayList)
- 元素的类型
notes.add(index,s);
放东西进容器,index可省略notes.size();
得到容器中的东西数量notes.get(index)
获取元素notes.remove(index)
返回String类notes.toArray(a)
讲notes转为数组存在a中。
3.2 对象数组
- 对象数组中的每个元素都是对象的管理者而非对象本身。
- 可以使用for-each循环
3.3 集合容器
HashSet<String> s = new HashSet<String>()
- 没有重复元素
- 元素不排序
- 容器可以直接用
System.out.println(s)
输出
3.4 Hash表
private HashMap<Integer,String> connames = new HashMap<Interger,String>();
- 由一个key,一个value组成
coinnames.put(key,value)
放入东西coinnames.get(2)
获得key为2对应的valuecoinnames.containsKey(4)
是否包含key为4coinnames.keySet().size()
key的个数- 可以直接输出整个Hash表
- 遍历表:
for(Integer k:coinnames.keySet()){
String s = coinnames.get(k)
}
举例:
输出:aaa bbb
习题:
package test3;
import java.util.ArrayList;
import java.util.Scanner;
// 查找里程
class City{
private ArrayList<String> city;
private int[][] distance;
Scanner in = new Scanner(System.in);
public City() {
city = new ArrayList<String>();
while(true) {
String s = in.next();
if(s.equals("###")) {
break;}
else {
city.add(s);}
}
distance =new int[city.size()][city.size()];
}
public void setDistance() {
for(int i=0;i<distance.length;i++) {
for(int j=0;j<distance[i].length;j++) {
int mile=in.nextInt();
distance[i][j]=mile;
}
}
}
public void getDistance() {
int begin = city.indexOf(in.next());
int end = city.indexOf(in.next());
System.out.println(distance[begin][end]);
}
}
public class Main {
public static void main(String[] args) {
City city = new City();
city.setDistance();
city.getDistance();
}
}