Java集合分为两大类:Collection和Map
Cloocetion:List接口和Set接口
1.List接口:有序,重复
ArrayList:List 接口的大小可变数组的实现。查找性能较高。
LinkedList: List 接口的链接列表实现。增添删除性能较高。
2.Set接口:无序的,不可重复
HashSet:此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。
Map接口:
/**
* ArrayList添加和删除操作
*/
private static void m1() {
ArrayList list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("123");
System.out.println(list);
list.remove(0);//通过索引删除第一个元素
list.remove("123");//通过内容删除第四个元素
System.out.println(list);
}
/**
* 修改指定位置的元素
*/
private static void m2() {
ArrayList list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("123");
System.out.println(list);
list.set(2,"r");
System.out.println(list);
}
/**
* 查找集合中的元素
*/
private static void m3() {
ArrayList list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("123");
System.out.println(list);
String v = (String) list.get(0);
System.out.println(v);
}
/**
* 遍历数组中的所有元素
* size() 返回此列表中的元素数。
*/
private static void m4() {
ArrayList list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("123");
System.out.println(list.size());
// for(int i=0;i<list.size();i++){
// String v = (String)list.get(i);
// System.out.println(v);
// }
//迭代器遍历集合
Iterator ite = list.iterator();
while(ite.hasNext())//判断是否有下个元素来迭代
{
System.out.println(ite.next());
}
}
/**
* 弹栈
*/
private static void m1() {
LinkedList list = new LinkedList();
list.push("a");
list.push("b");
list.push("c");
list.pop();
System.out.println(list);
}
/**
* HashSet基本操作
*/
private static void m1() {
HashSet set = new HashSet();
set.add("qiqi");
set.add("Joki");
set.add("haha");
System.out.println(set);
//判断一个元素是否存在集合中
boolean b = set.contains("Joki");
System.out.println(b);
}
/**
* HashSet的遍历
*/
private static void m2() {
//使用迭代器
HashSet set = new HashSet();
set.add("qiqi");
set.add("Joki");
set.add("haha");
Iterator ite= set.iterator();
while(ite.hasNext()){
System.out.println(ite.next());
}
}
/*
* Map的基本操作
*/
Map map = new HashMap();
map.put("Joki", 111);
map.put("hahha", 250);
map.put("chouzhu",456);
map.put("dashabi", 6666);
System.out.println(map);
System.out.println(map.put("chouzhu", 38));
System.out.println(map.containsValue(456));
System.out.println(map.containsKey("Joki"));
for( Object key : map.keySet()){
System.out.println(key + "-->" + map.get(key));
}
map.remove("dashabi");
System.out.println(map);
/**
* 使用迭代器遍历
*/
Set entry = map.entrySet();
Iterator ite = entry.iterator();
while(ite.hasNext()){
Map.Entry entry1 = (Entry) ite.next();
String key = (String) entry1.getKey();
if("Joki".equals(key)){
entry1.setValue("999");
}
}
System.out.println(map);
泛型类
public class Point<t1,t2> //t1,t2称为类型参数
{
private t1 x;
private t2 y;
public void setLacation(t1 x , t2 y){
this.x = x ;
this.y = y;
}
public void getLacation(){
System.out.println("x=" + x +", y=" + y );
}
}
public class Launcher {
public static void main(String[] args){
Point<String,String> p = new Point<>();//泛型声明要在创建对象的时候,改变类型时要重新创建一个对象
p.setLacation("东经10°","北纬20°");
p.getLacation();
Point<Integer,Integer> p1 = new Point<>();
p1.setLacation(5,6);
p1.getLacation();
}
}
泛型接口
public interface MyInterface<T> {
}
泛型方法
public class Point //t1,t2称为类型参数
{
public <t1,t2>void setLacation(t1 x , t2 y)//<>位于返回类型之前,如果是静态方法位于static之后
{
System.out.println("x=" + x +",y=" + y);
}
}
public class Launcher {
public static void main(String[] args){
Point p = new Point();
p.setLacation("东京10°","北纬20°");
p.setLacation(10,20);
}
}
相关资料:http://www.javaweb.cc/help/JavaAPI1.6/index.html?overview-summary.html