集合框架:
List接口:存储一组不唯一,有序的对象
/*Set接口:存储一组唯一,无序的对象
Map接口: 存储一组健值对象,提供key到value的映射
Set相当于Map的key(key是可以无序,但唯一)
ArrayList:实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率高。
LinkedList:采用链表的存储方式。插入,删除元素效率比较高。
集合里面不能存基本数据类型,只能存对象
在输出时 必须将遍历的数组强制转换为自己要的类型!!!!!!!!!!!!!!!!!!!!!

set接口: 存储是的无序的,唯一的对象 
在存入对象set会自动使用equals去比较对象地址值是否相等  不相等才能存入,确保唯一性
如果存入的对象的(String)值一样,equals比较之后,String类型相同的值只会计算一遍。
setget方法,因为他是无序的,无法用下标获取,所以用foreach循环遍历元素,迭代器输出。*/

//例如:    
    NewTitle title1 = new NewTitle(1,"武汉晴天1","admin");
    Set set=new HashSet();
    ser.add(title1);
    system.out.println(ser.size());            //输出新闻记录数

    //遍历每条新闻信息foreach循环遍历
    for(Object obj:set){
          NewTitle title = ( NewTitle)obj;
          system.out.println(title.getId()+title.getTitle());
    }//打印出来的结果是无序的!!!!

    //迭代器遍历Iterator
    Iterator(导入包)  itor(取名)=set.iterator();        //通过Iterator获得迭代器

    //通过迭代器遍历输出
    while(itor.hasNext()){            //判断下一个值存不存在,存在返回true,则反之
    NewTitle title = ( NewTitle)itor.next();        //强制转换为输出的类型
     system.out.println(title.getId()+title.getTitle());
    }


//Map接口:通过key对value进行操作    专门处理健值映射数据的存储    根据键实现对值得操作
    //常用的实现类是HashMap
    //Map的键是唯一的,无序的,但是值可以重复,但是是无序的。
//例如:    
    Map countrise=new HashMap();
    countrise.put("键""值");            //put往集合中添加健值对
    system.out.println(countrise.size());        //输出countrise对象的长度
    String cnStr = (String) countrise.get("键")    //获取某个键相对应的值  如果这个键不存在返回null
    system.out.println("cnStr");            //输出这个值
    boolean flag= countrise.containsKey("键")    //判断map中是否包括某个键是则true反之false
    system.out.prntln("集合中是否包含此"":"+flag);    //如果包含输出true,反之false
    system.out.println(countrise.keySet());        //显示map键集和
    system.out.println(countrise.values());        //显示map值集和
    system.out.println(countrise.values());        //显示map键值对集和
    countrise.clear();                //清空所有元素集合

//IsEmpty()是Java中用于判断某种容器是否有元素的系统库函数。如用来判断ArrayList,HashSet,HashMap是否有元素等。
//判断一个顺序容器ArrayList里面是否有元素,如果有的话返回一个Boolean类型的值false,否则返回true。

import java.util.ArrayList;                //在此处引入ArrayList所在的库
ArrayList<Integer> a = new ArrayList<Integer>();
System.out.println(a.isEmpty());            //打印出true
a.add(5);
System.out.println(a.isEmpty());            //打印出false

//对map里的键与值进行操作的思路与方法
(一个个的取值进行操作)
Set keys= countrise.keySet();                //将countrise对象的键给Set里面的 Key对象
    for(Object obj:keys){                    //foreach循环输出键
    String key =(String)obj;                //强制转换为key
    String value = (String)countrise.get(key);    //利用get(键)方法拿到每个键对应的值
    system.out.println(key+" -- "+value);        //输出键和对应的值
}

Iterator(导入包) itor= keys.iterator();          //获得迭代器
while(itor.has.Next()){                         //判断下一个元素是否存在
    String key = (String)itor.next();           //拿到下一个键给key
    String value =(String)countrise.get(key);   //根据拿到的键key获得对应的值给value
    system.out.println(key+"--"+value);         //输出键和对应的值
}

//Map中的键值对的类型是:Map.Entry
(将键对值取出进行操作)
    //countrise.entrySet();                    //拿到所有键值对的方法
    Set ms=countrise.entrySet();            //将所有键值对放到ms里面,entrySet()返回的类型是Set这个类型
    for(Object obj:ms){                    //用froeach循环拿出来
    Map.Entry me= (Map.Entry)obj;        //因为键值对的类型是Map.Entry,所以得强制转换类型才能使用
    Object key=me.getKey();                //获取每个键值对中的键
    Object value=me.getValue();            //获取每个键值对中的值
    system.out.println((String)key+"--"+(String)value);    //将键与值打印出来
    }



文档更新时间: 2021-06-29 15:56   作者:mlrs