1.集合容器(set)
import java.util.ArrayList;
import java.util.HashSet;
public class rongqi {
public static void main(String[] args) {
ArrayList<String> a=new ArrayList<String>();
a.add("first");
a.add("second");
a.add("first");
for(String s:a) {
System.out.println(s);
}
System.out.println(a);
HashSet<String> s=new HashSet<String>();
s.add("first");
s.add("second");
s.add("first");
for(String k:s) {
System.out.println(k);
}
System.out.println(s);
}
}
输出:
first
second
first
[first, second, first]
first
second
[first, second]
我们可以看出,容器可以直接输出,那么昨天学过的Value类型的对象能直接输出吗?
class Value{
private int i;
Value(int i) {
this.i=i;
}
public int get() {
return i;
}
public String toString() {
return(""+i);
}
public static void main(String[] args) {
Value v=new Value(10);
System.out.println(v);//输出10
}
}
可以看出,通过函数toString实现了。
2.Hash表
Hash表,有的地方翻译为散列表。
传统意义上的Hash表,是能以int做值,将数据存放起来的数据结构。Java的Hash表可以以任何实现了hash()函数的类的对象做值来存放对象。
实现:
package hash;
import java.util.HashMap;
import java.util.Scanner;
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-dolar");
coinnames.put(50, "5毛");
System.out.println(coinnames.keySet());//输出所有key值
System.out.println(coinnames.keySet().size());//输出key集合长度
for(int k:coinnames.keySet()) {//输出hash表中所有值;
String s=new String(coinnames.get(k));
System.out.println(s);
}
}
public String getName(int amount) {
return coinnames.get(amount);
}
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int amount=in.nextInt();
Coin coin=new Coin();
String a=coin.getName(amount);
System.out.println(a);
}
}
输入输出:50 [1, 50, 25, 10] 4 penny 5毛 quarter dime 5毛