【校招VIP】java 集合和视图的概念

05月11日 收藏 0 评论 1 java开发

【校招VIP】java 集合和视图的概念

转载声明:文章来源https://blog.csdn.net/liyuzhe1998/article/details/86533656

一、集合的概念

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

二、集合的定义

java中集合类的基本接口是Collection,实现集合接口,需要实现集合接口中的一下方法:View Code

在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中的集合框架接口
java中的集合框架类

三、视图的概念

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]);
C 1条回复 评论
紫侠仙子

跟着大佬输出,感觉能量满满

发表于 2023-02-02 23:00:00
0 0