第三章
1.顺序容器
容器类
ArrayList<String> notes = new ArrayList<String>();
容器类是用来存放对象的类
容器类有两个类型:
- 容器的类型
- 元素的类型
ArrayList的操作
public class NoteBook {
private ArrayList<String> notes = new ArrayList<String>();
public void add(String s)
{
notes.add(s);//add方法
}
public void add(String s,int location) {
notes.add(location, s);//add方法
}
public int getSize()
{
return notes.size();//size()方法
}
public String getNote(int index)
{
return notes.get(index);//get方法
}
public void removeNote(int index)
{
notes.remove(index);//remove方法
}
public String[] list()
{
String[] a = new String[notes.size()];
// for(int i=0;i<notes.size();i++) {
// a[i]=notes.get(i);
// }
notes.toArray(a);//toArray方法
return a;
}
public static void main(String[] args) {
NoteBook nb = new NoteBook();
nb.add("a");
nb.add("b");
nb.add("c", 1);
System.out.println(nb.getSize());
System.out.println(nb.getNote(1));
String[] a =nb.list();
for(String s:a) {
System.out.println(s);
}
}
}
对象数组
String[] a = new String[10];
a这个数组的类型是String类型,String是一个类,所以称这样的数组为对象数组。
对象数组中的每个元素是对象的管理者,而非对象本身。
集合容器(set)
HashSet<String> s = new HashSet<String>();
s.add("1");
s.add("2");
s.add("3");
for(string K:s){
System.out.println(k);
}
输出:
1
2
3
也可以这样直接输出System.out.println(s);
输出:
[1, 2, 3]
为什么可以这样直接输出?
因为Hashset类中实现了public String toString(){}方法。
任何一个类中只要实现了该方法,就可以直接输出对象。
哈希表(hash)
public class Coin {
private HashMap<Integer, String> coinnames = new HashMap<Integer, String>();
public Coin() {
coinnames.put(1, "penny");
coinnames.put(10,"dime");
coinnames.put(25,"quarter");
coinnames.put(50,"half-dollar");
coinnames.put(50, "五毛");
System.out.println(coinnames.keySet().size());//包含的键的个数
System.out.println(coinnames);//直接输出对象
for(Integer k:coinnames.keySet()) {//遍历
String s = coinnames.get(k);
System.out.println(s);
}
}
public String getName(int amount) {
if(coinnames.containsKey(amount))
return coinnames.get(amount);
else
return "not found";
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int amount = in.nextInt();
Coin a = new Coin();
String s = a.getName(amount);
System.out.println(s);
}
}