Java——集合

一,Collection接口(除Map外所有其他集合类的根接口)

集合可以理解为一个动态的对象数组,不同的是集合中的对象内容可以任意扩充

List:一种有序列表的集合,例如,按索引排列的StudentList

Set:一种保证没有重复元素的集合,例如,所有无重复名称的StudentSet

Map:一种通过键值(key-value)查找的映射表集合,例如,根据Studentname查找对应StudentMap

Java访问集合总是通过统一的方式——迭代器(Iterator)来实现,它最明显的好处在于无需知道集合内部元素是按什么方式存储的。

1.List接口(有序列表)

1,List接口可以存放任意的数据,而且在List接口中内容是可以重复的

2,List接口常用的子类:ArrayList,LinkedList

List的行为和数组几乎完全相同:List内部按照放入元素的先后顺序存放,每个元素都可以通过索引确定自己的位置,List的索引和数组一样,从0开始。

3.常用操作:

        判断集合是否为空:boolean isEmpty() 

        查找指定的对象是否存在:int indexOf(Object o)

ArrayList 

public class ListDemo {
    public static void main(String[] args) {
        ArrayList<String> lists = new ArrayList<String>();
        lists.add("a");
        lists.add("lx");
        lists.add("a");
        for(int i = 0;i<lists.size();i++){
            System.out.println(lists.get(i));
        }
        lists.remove(0);
    }
}

集合list的长度是size,add,remove的方法用来添加和删除元素;

1)isEmpty()——判断集合是否为空

public class ListDemo {
    public static void main(String[] args) {
        ArrayList<String> lists = new ArrayList<String>();
        boolean b = lists.isEmpty();    //true
        System.out.println(b);
    }
}

2)indexOf()——查找对应元素的索引

public class ListDemo {
    public static void main(String[] args) {
        ArrayList<String> lists = new ArrayList<String>();
        lists.add("a");
        lists.add("b");
        lists.add("a");
        System.out.println(lists.indexOf("c"));    //-1
        System.out.println(lists.indexOf("b"));    //1
        System.out.println(lists.indexOf("a"));    //0

    }
}

2.Set接口

Set接口不能加入重复元素,但是可以排序;List可以加入重复元素,但是数据按传入顺序排列

Set接口常用子类:

        散列存放:HashSet

        有序存放:TreeSet

public class ListDemo1 {
    public static void main(String[] args) {
        Set<String> s = new TreeSet<String>(); 
        s.add("b");
        s.add("A");
        s.add("c");
        s.add("e");
        s.add("d");
        System.out.println(s);
    }
}
[A, b, c, d, e]

二,Iterator接口

1,集合输出的标准操作:

        标准做法,使用Iterator接口

2,操作原理:

        Iteartor是专门的迭代输出接口,迭代输出就是将元素一个个进行判断,判断其是否有内容,如果有内容则把内容取出

booleanhasNext()
如果迭代具有更多元素,则返回。true
Enext()
返回迭代中的下一个元素。
default voidremove()
从基础集合中删除返回的最后一个元素 通过此迭代器(可选操作)。

如果有迭代元素,hasNext()返回true,用next()返回迭代中的下一个元素;可与删除元素

public class ListDemo2 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        Iterator<String> iter = list.iterator();
        while (iter.hasNext()) {
            String str = iter.next();
            if("a".equals(str)){
                iter.remove();
            }else{
                System.out.println(str);

            }
        }
    }
}

 Java有迭代功能。迭代功能可以由迭代器接口Iterable<E>

和迭代器接口Iterator<E>、ListIterator<E>实现,

每一个实现Collection<E>接口的容器对象都可以调用iterator()方法返回一个迭代器。

三,Map接口

1,保存形式:

        key——>value的方式保存,即键值对的方式保存

2,常用子类:

        HashMap:无序存放,key不允许重复

        Hashtable:无序存放,key不允许重复

1.键值对的输入,获取和判断

public class MapDemo {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<>();
        map.put("k1", "lx");    //放入元素
        map.put("k2", "zsh");
        map.put("k3", "ztt");
        map.put("k4", "wlw");
        if(map.containsKey("k1")){
            System.out.println("k存在");
            if(map.containsValue("lx")){
                String s = map.get("k1");   //通过键获取值
                System.out.println(s);
            }else{
                System.out.println("值不存在");
            }

        }else{
            System.out.println("k不存在");
        }

    }
}

2.键值对的全部输入输出 

public class MapDemo {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<>();
        map.put("k1", "lx");    //放入元素
        map.put("k2", "zsh");
        map.put("k3", "ztt");
        map.put("k4", "wlw");
        //如何得到键
        Set<String> s = map.keySet();
        Iterator<String> i = s.iterator();
        while (i.hasNext()) {
            System.out.println(i.next());
        }
        //如何得到值
        Collection<String> c = map.values();
        Iterator<String> j = c.iterator();
        while (j.hasNext()) {
            System.out.println(j.next());
        }
    }
}

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值