java集合框架提供了一套性能优良/使用方便的接口和类,他们位于java . util包中
Collection 接口存储一组不唯一,无序的对象
List接口存储一组不唯一,有序(插入顺序)的对象
例:
Set接口存储一组唯一,无序的对象
例:
Map:
Map接口存储一组键值对象,提供key到value的映射
List接口的实现类?
ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高
linkedList采用链表存储方式。插入/删除元素时效率比较高
List接口常用方法:
LinkedList常用方法:
使用ArrayList?
1.声明集合
List list=new ArrayList();
2.添加信息
Dog dog=new Dog();
list.add(Object对象);
3for.遍历信息
for(int i=0; i<list.size(); i++){
Dog dog=(Dog)list.get(i);//这里是Object类型,所以需要强转
dog.print();//输出信息
}
3.1foreach遍历信息
for(Object object : list){
((Dog)object).print();
}
list.size();表示长度
使用 list.get(索引);拿值
4.删除方式
list.remove(0);//删除索引号为0的对象
list.remove(Dog1);按照指定的对象名删除
5.判断对象是否存在
if(list.contains(Dog1))
注:获取第一条对象信息:(Dog)list.getFirst(); 获取最后一条信息 (Dog)list.getLast();
ArrayList代码演示:
package Text; import java.util.List; import java.util.ArrayList; public class Text02 { public static void main(String[] args) { //创建ArrayList集合 List list=new ArrayList(); //添加元素 list.add("测试A"); list.add("测试B"); //插入指定位置--注意插入的位置不能大于集合的已有的集合数 list.add(1,"测试C"); //循环遍历信息 for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } }使用LinkedList代码演示:
package Text; import java.util.LinkedList; import java.util.List; public class Text03 { public static void main(String[] args) { //创建 LinkedList单列集合集合 LinkedList list=new LinkedList(); //添加元素 list.add("测试A"); //指定位置添加 list.add(0,"测试B"); //向集合第一位添加 list.addFirst("测试C"); //向集合最后一位添加 list.addFirst("测试D"); //获取第一位元素 System.out.println(list.getFirst()); //获取最后一位元素 System.out.println(list.getLast()); //删除第一位元素 list.removeFirst(); //删除最后一位元素 list.removeFirst(); } }Map接口?
Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作最常用的实现类是HashMap
1.声明Map接口下的类
Map coutres=new HashMap();
2.添加put(Object key键名 , Object value值)
coutres.put("CN","中华人名共和国");
coutres.put("RU","俄罗斯联邦");
coutres.put("FR","法兰西共和国");
3.通过key获取值
String text = coutres.get("CN");
4.显示集合中的个数
coutres.size();
5.两次判断Map接口中是否存在FR键名
boolean bo= coutres.containsKey("FR");
Map接口中是否存在FRvalue值
boolean bo1=coutres.containsValue("中华人名共和国");
6.删除集合对象
coutres.remove("FR");//只能通过键名删除
7.分别显示键集,值集,键值集合
System.out.println(coutres.KeySet());
System.out.println(coutres.values);
System.out.println(coutres.coutres);
8.foreach遍历
for(Object obj : coutres.KeySet()){
System.out.print((String)obj);
}
for(Object obj : coutres.values()){
System.out.print((String)obj);
}
9.清空HashMap判断
coutres . clear();
if(coutres.isEmpty()){System.out.println("已将所有Map接口清空")}
Map--HashMap集合代码演示如下:
package Text; import java.util.*; import java.util.Map.Entry; /** * 有关Map键值对集合 *<p>Title:Text01</p> *<p>Description:</p> *<p>Company:</p> * @author MLQ * @date 2018年3月10日 上午11:04:59 */ public class Text01 { public static void main(String[] args) { Map<String,String> map=new HashMap<String,String>(); map.put("1", "测试"); System.out.println("===========第一种方式==============="); //通过Keys键获取values Set<String> keySet2 = map.keySet(); for (String string : keySet2) { System.out.println(string); System.out.println(map.get(string)); } System.out.println("===========第二种方式==============="); //直接获取values Collection<String> values = map.values(); for (String string : values) { System.out.println(string); } System.out.println("===========第三种方式==============="); //获取kye和value Set<Entry<String, String>> entrySet = map.entrySet(); for (Entry<String, String> entry : entrySet) { System.out.println(entry.getKey()); System.out.println(entry.getValue()); } System.out.println("===========第四种方式==============="); //使用迭代器方式 Set<String> keySet = map.keySet(); Iterator<String> iterator = keySet.iterator(); //判断是否有下一个元素 while(iterator.hasNext()) { String keys=iterator.next(); System.out.println(map.get(keys)); } System.out.println("===========第五种方式==============="); //使用迭代器获取key 和 value Iterator<Entry<String, String>> iterator2 = map.entrySet().iterator(); while(iterator2.hasNext()) { Entry<String, String> next = iterator2.next(); System.out.println(next.getKey()); System.out.println(next.getValue()); } } }
