天天看点

java进阶学习 03

第三章

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

}