集合其实是就是通过接口来实现的,集合有各种各样的方法可以调用,需要自己去实践。
List与Set都是Collection的子类,Collection的简单使用会在Map里提到。
可以加入重复元素,接口必须通过子类实现,List常用子类:ArrayList,Vector;
首先List的ArrayList:像lists.add("A");lists.size();lists.isEmpty()等等的方法都是List特有的可以直接使用,具体可以到API中查看
package javalearn;
import java.util.ArrayList;//声明必须有
import java.util.List;//声明必须有
public class Learn {
public static void main(String[] args) {
List
lists= new ArrayList
lists.add("A");
lists.add("B");
lists.add("C");
for(int i=0;i
}
lists.remove(0);//移除集合的元素,是不是很容易。。。
System.out.println("----删除之后-----");
for(int i=0;i
}
System.out.println("集合是否为空:"+lists.isEmpty());
System.out.println("集合中是否含有C字母:"+lists.indexOf("B"));//有返回具体位置,无返回-1;
}
}
运行结果:
A
B
C
----删除之后-----
B
C
集合是否为空:false
集合中是否含有C字母:0
Vector与ArrayList用法相同,区别是Vector属于线程安全,ArrayList不属于,但是ArrayList处理速度更快。根据自身需求选一个用就行。
不能加入重复元素,可以排序,Set常用子类:HashSet,TreeSet;。
HashSet:散列存放,但1.8版本的好像有所改变,经常是自动有序。
TreeSet:有序存放
实现代码:
package javalearn;
import java.util.HashSet;//声明必须有
import java.util.Set;//声明必须有
import java.util.TreeSet;//声明必须有
public class Learn {
public static void main(String[] args) {
Set
Set
s= new HashSet
s.add("B");
s.add("C");
s.add("A");
s.add("D");
s.add("E");
System.out.println(s);
t= new TreeSet
t.add("C");
t.add("D");
t.add("A");
t.add("B");
t.add("E");
System.out.println(t);
}
}
运行结果:
[A, B, C, D, E]
[A, B, C, D, E]
这个接口一般用来迭代输出,作为迭代器,它的具体方法也有很多,具体自己下去API查看或自己去编译器试
package javalearn;
import java.util.ArrayList;//声明必须有
import java.util.List;//声明必须有
import java.util.Iterator;//声明必须有
public class Learn {
public static void main(String[] args) {
List
lists= new ArrayList
lists.add("A");
lists.add("B");
lists.add("C");
lists.add("D");
lists.add("E");
lists.add("F");
Iterator
while(tor.hasNext()){//这个方法判断集合是否还剩元素,有返回true,否false
String str = tor.next();//将元素依次赋值给str
if(str.equals("B")){
tor.remove();//记住迭代时一定不能直接用List使用remove方法,一定通过Itertor
}
else{
System.out.println(str);
}
}
}
}
运行结果:
ACDEF //B已经被删掉
常用子类:HashMap与HashTable
大概格式:Map
(钥匙,值)通过钥匙来获取值,具体代码:
package javalearn;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class Learn {
public static void main(String[] args) {
Map
map.put("王明","13652846852");
map.put("李红","13655222654");
map.put("张三","13625456857");
System.out.println(map.get("李红"));
if(map.containsKey("张三")){
System.out.println("张三这个钥匙存在");
}else{
System.out.println("张三这个钥匙不存在");
}
if(map.containsValue("13625456857")){
System.out.println("13625456857这个值存在");
}else{
System.out.println("13625456857这个值不存在");
}
Set
Iterator
while(i.hasNext()){
System.out.println(i.next());//输出全部钥匙
}
Collection
Iterator
while(j.hasNext()){
System.out.println(j.next());//输出全部值
}
}
}
运行结果
13655222654
张三这个钥匙存在
13625456857这个值存在
张三
李红
王明
13625456857
13655222654
13652846852
其实具体要转换成那类集合要看具体使用的方法返回什么类型,例如:map.keySet()这个方法返回是Set类型所以用Set集合,map.values()返回的是Collection类型,所以用Collection集合,具体返回哪个在调用时eclipse会有提示。