Java基础总结----第五章set、list、map

set:

/**
 * HashSet如何实现的不重复
 * set集合无序,不可以重复同一个对象不可以保存进同一个集合,不同对象内容对象内容相同也不能进行保存进同意集合
 *
 * 说到比较优先会想到equals方法,但是为了能提高比较效率我们需要使用hashcode值
 * hashcode值就是将内容经hash计算返回的整数得值,如果两个对象的hashcode值不同,则证明这两个不同对象
 * 但是如果hashcode值相同,我们需要进行之一比较,防止出现hashcode值相同内容不同的偶然事件
 */
//set集合无序不可以重复
//同一个对象不能保存在同一个set集合中,同时不同对象内容相同也不能保存进同一个集合中
Set set=new HashSet();
String s1="hello";
String s2="hello";
String s3=new String("hello");
set.add(s1);
set.add(s2);
set.add(s3);
set.add("zhangsan");
set.add(159);
set.add(true);
System.out.println(set);

迭代器:

Collection c=new ArrayList();
c.add("zhangsan");
c.add(123);
c.add(99.5);
c.add('A');
c.add(true);
//集合使用迭代器进行遍历集
Iterator it=c.iterator();
//it.hasNext()表示游标,用于判断后面是否还有数据,如果有则返回true,否则为false
while(it.hasNext()){
    Object o=it.next();//next方法返回后面的值(取值)
    System.out.println(o);
}

list:

小技巧:

List list =new ArrayList();
list.add("zhangsan");
list.add("lisi");
list.add("wangwu");
list.add("zhaoliu");
list.add("zhang");
System.out.println(list);
//排序
//排序的核心使用的是compareTo的方法,例如字符串,是将其转换为字符数组,然后用字符比较
// 前面的表示A后面表示B;
//如果A-B大于0则交换,否则小于等于0则顺序不变
Collections.sort(list);
System.out.println(list);
//乱序
Collections.shuffle(list);
System.out.println(list);
//反序
Collections.reverse(list);
System.out.println(list);
/**
 * List有两个重要的实现类一个是ArrayList一个是linkedList
 * ArrayList底层是数组而linkedList底层是链表
 * 数组:查询快 增删改慢
 * 链表:查询慢 增删改快
 * (注意实际问题实际分析,规律可能有变化)
 */
public class ListTest {
    public static void main(String[] args) {
        List list =new LinkedList();
        list.add("zhangsan");
        list.add(147);
        list.add(99.5);
        list.add('A');
        list.add(true);
        System.out.println(list);
        //在指定索引的位置添加一个数据,原位置及后续的数据,往后移
        list.add(2,"wangwu");
        //通过索引,修改指定位置的数据
        list.set(2,"zhaoliu");
        //通过索引获取指定位置的数据
        System.out.println(list.get(2));
        //通过索引删除指定位置的数据
        list.remove(2);
        System.out.println(list.indexOf('A'));
        //list 集合的遍历形式四种
        //1.将集合转换成数组进行遍历
        Object [] o=list.toArray();
        for (Object o1:o){
            System.out.println(o1+" ");
        }
        System.out.println();

        //2.使用迭代器进行遍历
        Iterator it =list.iterator();
        while (it.hasNext()){
            System.out.println(it.next()+" ");
        }
        System.out.println();

        //3.佛如循环直接遍历
        for (int i=0;i<list.size();i++){
            System.out.println(list.get(i)+" ");
        }
        System.out.println();

        //4.使用foreach进行遍历
        for (Object o1:list){
            System.out.println(o1+" ");
        }
        System.out.println();
        //因为集合只能保存引用类型的数据,所以数组使用引用类型指定数组中的元素,所以基本数据类型
        // 要使用包装类定义
        Integer a[]={0,1,2,3,4,5,6,7,8,9};
        List list1= Arrays.asList(a);
        System.out.println(list1);

map:

//map集合是以键值对的形式保存数据的,其中建不能重复,而值不做要求
Map map = new HashMap();
//put 方法用于将数组保存在map集合中
map.put("zhansan", 132);
map.put(159, true);
map.put(false, 'A');
map.put('a', 59);
map.put(59.5, "wangwu");
System.out.println(map);
//如果重复添加数据,最后一次的value值会将前面的数据覆盖掉,不会报错
map.put(false,'Z');
System.out.println(map);
//get方法通过key获取对应的value值
System.out.println(map.get(false));
//通过key删除数据
map.remove('a');
System.out.println(map);
//获取map集合的长度
System.out.println(map.size());
//map集合的遍历
//通用
Set setMap=map.entrySet();
Iterator it=setMap.iterator();
while (it.hasNext()){
    Map.Entry entry=(Map.Entry)it.next();
    //getkey获取是map集合中key-value中key的值
    System.out.println(entry.getKey());
    //getvalue获取是map集合中key-value中value的值
    System.out.println(entry.getValue());
}
//第二种特殊情况下遍历方式
Map map1=new HashMap();
map1.put("item0",159);
map1.put("item1","zhangsan");
map1.put("item2",true);
map1.put("item3",false);
map1.put("item4",'A');
map1.put("item5",99.5);
for(int i=0;i<map1.size();i++){
    System.out.println(map1.get("item"+i));
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值