美文网首页
java中的集合和视图

java中的集合和视图

作者: 小沙鹰168 | 来源:发表于2017-05-16 16:56 被阅读0次

转自:http://www.cnblogs.com/huangweikun/p/5107515.html
一、集合的概念

何为集合,集合就是相当于一个对象的容器。集合是类似数组的一个作用。既然有了数组,为何还要有集合呢,由于数组对象一旦创建,其大小便不可以更改,我们只能往数组中存放创建时数量的对象。而集合中的长度却是动态可变化的,我们可以往集合中添加任意数量的对象。并且我们可以通过集合更方便地实现数据结构如队列,栈等等。在集合中我们更可以定义自己想要的操作。

二、集合的定义
  java中集合类的基本接口是Collection,实现集合接口,需要实现集合接口中的一下方法:

class ExtendCollection<T> implements Collection<T>{

public void forEach(Consumer<? super T> action) {
// TODO Auto-generated method stub

}

public int size() {
// TODO Auto-generated method stub
return 0;
}

public boolean isEmpty() {
// TODO Auto-generated method stub
return false;
}

public boolean contains(Object o) {
// TODO Auto-generated method stub
return false;
}

public Iterator<T> iterator() {
// TODO Auto-generated method stub
return null;
}

public Object[] toArray() {
// TODO Auto-generated method stub
return null;
}

public <T> T[] toArray(T[] a) {
// TODO Auto-generated method stub
return null;
}

public boolean add(T e) {
// TODO Auto-generated method stub
return false;
}

public boolean remove(Object o) {
// TODO Auto-generated method stub
return false;
}

public boolean containsAll(Collection<?> c) {
// TODO Auto-generated method stub
return false;
}

public boolean addAll(Collection<? extends T> c) {
// TODO Auto-generated method stub
return false;
}

public boolean removeAll(Collection<?> c) {
// TODO Auto-generated method stub
return false;
}

public boolean removeIf(Predicate<? super T> filter) {
// TODO Auto-generated method stub
return false;
}

public boolean retainAll(Collection<?> c) {
// TODO Auto-generated method stub
return false;
}

public void clear() {
// TODO Auto-generated method stub
}

public Spliterator<T> spliterator() {
// TODO Auto-generated method stub
return null;
}

public Stream<T> stream() {
// TODO Auto-generated method stub
return null;
}

public Stream<T> parallelStream() {
// TODO Auto-generated method stub
return null;
}

在Collection接口中使用了Iterator接口,Iterator接口的内部组成如下:

public interface Iterator<E>{
    void remove();
    E next();
    boolean hasNext();
  } 

通过实现我们的Iterator,Iterator就是一个迭代器,通过以下代码我们就可以循环遍历集合中的每一个元素:

 List<String> list = new ArrayList<String>();
        list.add("a");
        list.add("b");
        list.add("c");
        
        // 获取迭代器
        Iterator iterator = list.iterator();
        // 判断集合中是否存在下一个元素
        while(iterator.hasNext()){
            // 获取集合中的元素
            String str = iterator.next().toString();
            System.out.println(str);
        }        

另外我们还可以使用for each去循环遍历集合中的元素:这种方式在实际上原理就是使用了上面的代码进行遍历。

for(String item: list){
            System.out.println(item);
        }

for each关键字用于实现Iterable接口的对象,Iterable接口对象中只有一个方法,即获取迭代器的方法

public interface Iterable<E>{
        Iterator<E> iterator();
    }

三、视图的概念
 java中的视图,可以说其实就是一个具有限制的集合对象,只不过这里的不是集合对象,而是一个视图对象。例如:这里有一个Test类

Test[] tests = new Test[10];
List<Test> testList = Arrays.asList(tests);

这里的testList是一个视图对象,具有访问数组元素set,get的方法。但是如果调用改变数组的方法就会抛出异常。所以可以说视图对象可以说是具有限制的集合对象。

利用java类库中的方法我们可以获得不可更改视图,子视图等等,这些视图对于原对象具有不同的操作权限。
四、java中集合和数组的转换
将数组转换成集合

String[] values = {"my","a"};
HashSet<String> test = new HashSet<String>(Arrays.asList(values));

将集合转换成数组

String[] values = test.toArray(new String[0]);

相关文章

  • java中的集合和视图

    转自:http://www.cnblogs.com/huangweikun/p/5107515.html一、集合的...

  • Java(1.8) 集合中的LinkedList

    java(1.8)集合中的HashSetJava(1.8) 集合中的ArrayList Java(1.8)集合类中...

  • JAVA 集合 Collection中的视图技术(二)

    子范围 获得一个list的一部分,可以对这一部分进行操作,相应的操作(add,remove)将会影响到原list....

  • Java基础知识点(九)

    一、Java 中的集合框架(上) 1、Java 中的集合框架概述 JAVA集合框架体系结构:Collection与...

  • Java(1.8)集合中的HashSet

    Java(1.8) 集合中的LinkedListJava(1.8) 集合中的ArrayList Java(1.8)...

  • UICollectionView(集合视图学习笔记)

    集合视图的作用 管理数据项的有序集合并使用可自定义布局显示它们的对象。集合视图是为了增强网格视图开发而在IOS6中...

  • java集合介绍

    java 集合基本概念​​​​ 在《Java核心编程技术(第二版)》中是这样介绍java集合的: java中的集合...

  • 模板方法模式

    Java的集合就是一个典型的,利用了模板方法模式的例子。Java集合中的Collection集合包括List和Se...

  • [Java]重学Java-集合的视图

    聊聊一些常用的视图API asList 很多时候,我们希望快速得到一个List,我们可能会这样写: 直接报错: 出...

  • JAVA-集合

    JAVA集合 Java集合是使程序能够存储和操纵元素不固定的一组数据。 JAVA中的集合是一个类似一个‘’容器‘’...

网友评论

      本文标题:java中的集合和视图

      本文链接:https://www.haomeiwen.com/subject/lzblxxtx.html