Collection集合理解使用

22 篇文章 16 订阅
订阅专栏

目录

1 Collection集合

1.1 集合概述

1.2 数组和集合的区别

1.3 结构框架

2 Collection的使用

2.1常用功能

2.2 遍历集合

普通的for循环【必须要有索引,可以修改元素】

 Iterator接口

高级for循环【就是迭代器的简化方式】


1 Collection集合

1.1 集合概述

  • 集合:集合是java中提供的一种容器,可以用来存储多个数据。集合和数组既然都是容器,它们有啥区别呢?

  • 数组的长度是固定的。集合的长度是可变的。

  • 数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。

  • 1. Java 是⼀⻔⾯向对象的语⾔,就免不了处理对象
    2. 为了⽅便操作多个对象,那么我们就得把这多个对象存储起来
    3. 想要存储多个对象 ( 变量 ), 很容易就能想到⼀个 容器
    4. 常⽤的容器我们知道有 -->StringBuffffered, 数组 ( 虽然有对象数组,但是数组的⻓度是不可变的! )
    5. 所以, Java 就为我们提供了集合 (Collection)

1.2 数组和集合的区别

数组和集合的区别:

1:⻓度的区别

数组的⻓度固定

集合的⻓度可变

2:元素的数据类型

数组可以存储基本数据类型,也可以存储引⽤类型

集合只能存储引⽤类型(你存储的是简单的int,它会⾃动装箱成Integer

1.3 结构框架

Collection子接口有两个,两个子接口分别对应多个子实现类,多个集合数据结构不同,但是他们有共性内容,将共性内容抽取出来,就可以集合继承体系图;

 Collection 层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的(既可有序,也可以无序);

  • Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.Listjava.util.Set

  • List的特点是元素有序、元素可重复。Set的特点是元素无序,而且不可重复。List接口的主要实现类有java.util.ArrayListjava.util.LinkedList

  • Set接口的主要实现类有java.util.HashSetjava.util.TreeSet

            JDK 不提供此接口的任何直接实现:它提供更具体的子接口,更具体的实现类;


2 Collection的使用

2.1常用功能

java.util.Collection接口

Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,

这些方法可用于操作所有的单列集合。

1. 添加功能
    boolean add(E e) 
        添加一个元素
    boolean addAll(Collection c)  
        添加一批元素
2. 删除功能
   boolean remove(Object o) 
       删除一个元素
3. 判断功能
   boolean contains(Object o) 
       判断集合是否包含指定的元素
   boolean isEmpty()  
       判断集合是否为空(集合中没有元素)
4. 获取功能
   int size()  
      获取集合的长度
5. 转换功能
   Object[] toArray() 
       把集合转换为数组
public class CollectionDemo {
	
	public static void main(String[] args) {
		
		//创建集合对象
		//Collection c = new Collecton() ; //不能实例化
		Collection c = new ArrayList() ;
		Collection c1 = new ArrayList();
		System.out.println(c);
		
		//添加元素:boolean add(Object e);
		System.out.println("flag:"+c.add("hello"));
		c.add("hello") ;
		c.add("world") ;
		c.add("java") ;
		c1.add("world");
		c1.add("java");
		c1.add("hello");
		System.out.println("c:"+c) ;
		System.out.println("c1:"+c1) ;
		/**
		   add()方法的源码:
		   public boolean add(E e) {
		   
        		ensureCapacityInternal(size + 1);  // Increments modCount!!
        		elementData[size++] = e;
        		return true;   //只要添加就返回true
    	   }
    	   
		*/
		
		//删除功能:c.clear(); 
		System.out.println("remove():"+c.remove("java"));
		System.out.println("c:"+c);
		
		//boolean contains(Object o):集合中是否包含指定的元素
		System.out.println("contains():"+c.contains("android"));
		System.out.println("contains():"+c.contains("hello"));
		
		//获取集合中的元素数:
		System.out.println(c.size());
		
		//boolean isEmpty() :判断集合是否为空
		System.out.println(c.isEmpty());
		
		//交集功能:boolean retainAll(Collection c);
		System.out.println("retainAll:"+c.retainAll(c1));
		System.out.println("c:"+c) ;  //将交集的元素赋给集合c;
		System.out.println("c1:"+c1) ;
		
		//删除一个集合中所有元素:boolean removeAll(Collection c);
		System.out.println("removeAll:"+c1.removeAll(c));
		System.out.println("c:"+c) ;
		System.out.println("c1:"+c1) ;  //删除集合c中的所有元素,并将删除元素后的集合c赋给c1;
 
	}
}

Collection集合的高级功能:
                boolean addAll(Collection c):添加一个集合中的所有元素;
                boolean removeAll(Collection c):删除的高级功能;
                        思考:删除一个算是删除还是删除所有算是删除?);
                boolean containsAll(Collection c):包含所有元素算是包含,还是包含一个算是包含;
                boolean retainAll(Collection c):交集功能,A集合对B集合取交集;
                        思考:交集的元素到底是去A集合还是去B集合中,返回值boolean表达什么意思?
 

import java.util.ArrayList;
import java.util.Collection;
 
public class CollectionDemo {
	
	public static void main(String[] args) {
		
		//创建Collection集合1
		Collection c1 = new ArrayList() ;
		
		//添加元素
		c1.add("abc1") ;
		c1.add("abc2") ;
		c1.add("abc3") ;
		c1.add("abc4") ;
		
		
		//创建第二个集合
		Collection c2 = new ArrayList() ;
		c2.add("abc1") ;
		c2.add("abc2") ;
		c2.add("abc3") ;
		c2.add("abc4") ;
		c2.add("abc5") ;
		c2.add("abc6") ;
		c2.add("abc7") ;
		System.out.println("未发生变化的数据:");
		System.out.println("c1:"+c1);
		System.out.println("c2:"+c2);
		System.out.println("--------------------------------");
		
		//boolean addAll(Collection c)  :添加一个集合中的所有元素
		System.out.println("addAll():"+c1.addAll(c2));   //将c2中的所有元素都添加到c1中
		System.out.println("c1:"+c1);
		System.out.println("c2:"+c2);
		System.out.println("--------------------------------");
		
		//boolean removeAll(Collection c):删除的高级功能(思考:删除一个算是删除还是删除所有算是删除?)
		//结论:删除一个算是删除...
		System.out.println("removeAll():"+c1.removeAll(c2));
		System.out.println("c1:"+c1);    //删除集合c2中的所有元素,并将删除元素后的集合赋给c1;
		System.out.println("c2:"+c2);
		System.out.println("--------------------------------");
		
		//boolean containsAll(Collection c):包含所有元素算是包含,还是包含一个算是包含
		//结论:包含所有算是包含
		System.out.println("containsAll():"+c1.containsAll(c2));
		System.out.println("c1:"+c1);    //c1的所有元素都要在c2中能找到才算包含,并将包含的元素赋给集合c1;
		System.out.println("c2:"+c2);
		System.out.println("--------------------------------");
		
		//boolean retainAll(Collection c):A集合对B集合取交集,交集的元素到底是去A集合还是去B集合中
		//返回值boolean表达什么意思?
		//结论:c1集合对c2集合取交集,交集的元素要存到c1集合中,boolean返回值表达的c1集合的元素是否发生变化,如果发生变化,则返回true,否则,返回false
		System.out.println("retainAll():"+c1.retainAll(c2));
		System.out.println("c1:"+c1);
		System.out.println("c2:"+c2);
	}
}

转换功能:
                Object[] toArray():将集合转换成数组;

public class CollectionDemo2 {
	
	public static void main(String[] args) {
		
		//创建一个集合对象
		Collection c = new ArrayList() ;
		
		//给集合中添加元素
		c.add("hello") ;
		c.add("world") ;
		c.add("java") ;
		c.add("JavaEE") ;
		
		//需要去转换
		//Object[] toArray()
		//将集合转成数组
		Object[] objs = c.toArray() ;
		for(int x =0 ; x < objs.length ; x ++) {
			//System.out.println(objs[x]);
			//需求:输出不同的元素的同时,还需要输出字符串元素的长度
			//System.out.println(objs[x]+"----"+objs[x].length());
			
			/**
			 *上面代码有问题
			 * length():属于String类型的特有功能,可以获取字符串长度,不能再Object类中使用
			 */
			
			String str = (String) objs[x] ;  //相当于:向下转型
			System.out.println(str+"----"+str.length());
		}
	}
}
package org.westos_02;
 
import java.util.ArrayList;
import java.util.Collection;
 
/**
 *需求:存储自定义对象并遍历
 *
 *有5个学生,学生有姓名,年龄,遍历5个学生,输出5个学生对应的信息(集合改进)
 *
 *1)创建一个学生类
 *2)在测试类中,创建集合对象
 *3)创建5个具体学生对象,并且添加集合中
 *4)将集合转换数组
 *5)遍历
 *6)输出
 */
public class CollectionDemo {
	
	public static void main(String[] args) {
		
		//创建一个集合对象
		Collection c = new ArrayList() ;
		
		//创建5个具体学生对象
		Student s1 = new Student("高圆圆", 27) ;
		Student s2 = new Student("杨桃", 28) ;
		Student s3 = new Student("王力宏", 35) ;
		Student s4 = new Student("周星驰", 60) ;
		Student s5 = new Student("成龙", 55) ;
		
		//添加到集合中
		c.add(s1) ;
		c.add(s2) ;
		c.add(s3) ;
		c.add(s4) ;
		c.add(s5) ;
		
		//转换数组
		Object[] objs = c.toArray() ;
		//遍历
		for(int x = 0 ; x < objs.length ;x ++) {
			//System.out.println(objs[x]);
			
			//需求:需要的通过getXXX方法获取学生信息
			
			Student s = (Student) objs[x] ; //向下转型
			System.out.println(s.getName()+"----"+s.getAge());
		}
	}
}

2.2 遍历集合

普通的for循环【必须要有索引,可以修改元素】

ArrayList<String> list=new ArrayList<>();
c.add("Hello");
c.add("Java");
c.add("World");
for(int i=0;ilist.size();i++){
    String s=(String)list.get(i);
    System.out.println(s);
}

 Iterator接口

  JDK专门提供了一个接口java.util.Iterator,遍历集合中的所有元素。

  Iterator接口也是Java集合中的一员,但它与CollectionMap接口有所不同,

  Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历)Collection中的元素,因此Iterator对象也被称为迭代器。

ArrayList下找到了iterator实现的身影:它是在ArrayList内部类的⽅式实现的!并且,

从源码可知:Iterator实际上就是在遍历集合

所以说:我们遍历集合(Collection)的元素都可以使⽤Iterator,⾄于它的具体实现是以内部类的⽅式
实现的!

  想要遍历Collection集合,那么就要获取该集合迭代器完成迭代操作,获取迭代器的方法:

Iterator iterator():集合的迭代器方法(获取集合的迭代器);
        集合的专有遍历方式:迭代器遍历;

        Iterator :接口中有以下的方法::
                boolean hasNext():如果有元素可以迭代,那么返回true,否则返回false;
                Object next():返回迭代的下一个元素;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
 
public class IteratorDemo {
 
	public static void main(String[] args) {
		//创建集合对象
		Collection c = new ArrayList() ;
 
		//添加元素
		c.add("hello");
		c.add("world");
		c.add("java");
		c.add("javaee");
 
		//通过集合获取迭代器
		Iterator it = c.iterator() ;
 
		//使用while循环
		while(it.hasNext()) {
                        //Object obj = it.next() ;  //Object obj = new Objct();
			//需求:打印字符串同时,获取长度
                        //String str = (String) obj ;
			String str = (String)(it.next()) ;
			System.out.println(str+"---"+str.length());
		}
		
	}
}

方法示例

注意::在进行集合元素取出时,如果集合中已经没有元素了,还继续使用迭代器的next方法,将会发生java.util.NoSuchElementException没有集合元素的错误。

  存储自定义对象并遍历(使用专有遍历方式):

package org.westos_03;
 
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
 
/**
 *存储自定义对象并遍历(使用专有遍历方式) 
 *
 */
class Student {
	
	private String name ;
	private int age ;
	
	public Student() {
		super();
	}
 
	public Student(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
 
	public String getName() {
		return name;
	}
 
	public void setName(String name) {
		this.name = name;
	}
 
	public int getAge() {
		return age;
	}
 
	public void setAge(int age) {
		this.age = age;
	}
 
	@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + "]";
	}
}
 
public class IteratorDemo2 {
	
	public static void main(String[] args) {
		
		//创建集合对象:
		Collection c = new ArrayList() ;
		
		//创建学生对象
		Student s1 = new Student("张三", 27) ;
		Student s2 = new Student("李四", 29) ;
		Student s3 = new Student("王五", 25) ;
		
		//添加集合中
		c.add(s1) ;
		c.add(s2) ;
		c.add(s3) ;
		
		//获取迭代器
		Iterator it = c.iterator() ;
                //遍历
		while(it.hasNext()) {   //模板代码
                        //System.out.println(((Student) it.next()).getName() + "----" + ((Student) it.next()).getAge());
			Student s = (Student)it.next() ;
			System.out.println(s.getName()+"="+s.getAge());
		}
	}
}

高级for循环【就是迭代器的简化方式】

增强for循环(也称for each循环)是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。

  格式:

for(元素的数据类型  变量 : Collection集合or数组){ 
    //写操作代码
}

  它用于遍历Collection和数组。通常只进行遍历元素,不要在遍历的过程中对集合元素进行增删操作。

Collection<String> coll=new ArrayList<String>();
coll.add("Hello");
coll.add("Java");
coll.add("World");
//高级for遍历集合
for(Stirng s:coll){
    System.out.println(s);
}

int[] arr={1,2,3,4,5,6};
//高级for遍历数组
for(int a:arr){
    System.out.println(a);
}   

 

 

 

 

数据结构,集合Collection),对象数组
weixin_45137957的博客
07-18 317
数据结构,集合Collection),对象数组 集合 (1)集合是什么: 作为一种容器,比数组要灵活,可以用来存储不同类型的数据。 (2)集合和数组的区别: 数组的长度是固定的,集合的长度是可变的 数组既能存储基本数据类型,又能存储引用数据类型,集合只能存储引用数据类型 数据存储同一种数据类型,集合可以存储多种数据类型 (3)相关的类和方法 1.ArrayList(): 构造一个...
Collection集合
weixin_45701868的博客
04-14 7601
目录 1.集合类介绍 2.Collection接口 2.1 Collection接口是最基本 2.2 Collection的遍历 3.List接口 3.1 List接口为Collection子接口。 2.2 List的常见实现类 3.2.1 List接口实现类-ArrayList 3.2.2 LinkedList 3.2.3 Vector 3.2.4 Stack 3.2.5 Queue 4.Set接口 4.1 Set的常见实现类 4.1.1 EnumSet 4.1.2 Ha.
Collection集合框架
qi15689782508的博客
11-12 3191
java的集合框架 java.util.Collection接口 Collection是所有集合的顶级接口,里面规定了集合操作元素的相关功能方法集合与数组一样,用于存储一组元素,但是集合又多个不同的实现类来实现不同的数据结构 Collection下面有两个常见的值接口 java.util.List:线性表,特点:可以存放重复元素并且有序,可以通过下标操作 java.util.Set:不可以重复的集合 这里的重复元素判定是依靠元素自身equals方法比较的结果而定 List常见的实
collection理解
grape2001的博客
11-17 579
集合(容器)和数组的区别 长度 数组长度固定 集合长度可变 内容 数组存储同一类型元素 集合存储不同类型元素 元素类型 数组可以存基本类型,也可以存引用类型 集合只可以存引用类型 继承体系 collection(接口) collection集合类只能存放引用数据类型) 添加功能 ​ boolean add(Object obj): 添加一个元素 ​ boolean addAll(Collection c):
Java 集合深入理解Collection
12-22
什么是集合?  · 集合,或者叫容器,是一个包含多个元素的对象;  · 集合可以对数据进行存储,检索,操作;  · 它们可以把许多个体组织成一个整体:  比如一副扑克牌(许多牌组成的集合);  比如一个...
Collection集合基本练习1
08-08
Collection集合基本练习1】是Java编程中关于集合框架的一个基础练习,主要涉及以下几个知识点: 1. **Collection接口**:Collection是Java集合框架的顶级接口,它定义了集合的基本操作,如添加、删除、判断元素等...
php中的Collection集合
05-04
本文将深入探讨如何理解使用PHP中的`Collection`集合类,以及它带来的优势和应用场景。 `Collection`集合类通常是为了模仿其他面向对象语言如Java或C#中的集合概念。在PHP中,我们可以创建一个`Collection`类,它...
Java中的collection集合类型总结
09-02
Java中的集合框架是Java编程语言的核心组成...理解并熟练掌握这些集合类型及其特性对于任何Java开发者都是至关重要的。通过选择合适的集合类型并利用提供的方法,可以有效地管理和操作数据,提高代码的可读性和性能。
Collection集合继承结构图.pdf
05-31
根据文件内容,我们可以了解关于Java集合框架中Collection集合类的一些知识点。首先,Collection是Java集合框架的核心接口之一,它是单列集合的主要根接口。Collection集合类继承结构图向我们展示了Collection接口与...
集合Collection详解.
lwj_07的博客
03-25 3201
一、集合概述 1.1、什么是集合?有什么用 数组其实就是一个集合集合实际上就是一个容器。可以来容纳其它类型的数据。 集合为什么说在开发中使用较多?集合是一个容器,是一个载体,可以一次容纳多个对象。 在实际开发中,假设连接数据库,数据库当中有10条记录, 那么假设把这10条记录查询出来,在java程序中会将10条 数据封装成10个java对象,然后将10个java对象放到某一个 集合当中,将集合传到前端,然后遍历集合,将一个数据一个 数据展现出来。 ...
深入理解Collection集合
可达鸭的博客
03-29 1217
List接口 List接口下的集合元素存储有序,可以重复。 List的特有功能 A:添加功能 void add(int index, Object obj):在指定位置添加元素 B:删除功能 Object remove(int index):根据指定索引删除元素,并把删除的元素返回。 C:修改功能...
Collection集合集合概念的简单理解及数据结构的简单理解
qq_43004431的博客
07-30 734
Collection集合(简单理解Collection接口 : 是单列集合最顶层的接口。 定义了所有单列集合中的共性方法,但是里面没有带索引(下标)的方法。 List 接口 继承(extends) Collection 接口 1、是有序集合(存储和取出的元素相同)。 2、允许存储重复元素。 3、有索引,可以进行循环遍历。 ArrayList :底层是数组实现的,查询快,增删慢。线性不安全的。 LinkedList :底层是链表实现的,查询慢,增删快。线性不安全的。 Vector:
集合——Collection
qq_53009955的博客
08-13 307
集合除了存储引用类型的基本数据以外,还可以存储对象list.add(new test002("张三"));list.add(new test002("李四"));list.add(new test002("王五"));}}}@Data}相同的,因为new了对象需要开辟空间将数据存储到堆内存中,使用集合里面存储的是对象的地址值。......
Collection粗略解释
yezhenghai的博客
06-11 175
总结: Connection接口: — List 有序,可重复 ArrayList 优点: 底层数据结构是数组,查询快,增删慢。 缺点: 线程不安全,效率高 Vector 优点: 底层数据结构是数组,查询快,增删慢。 缺点: 线程安全,效率低 LinkedList 优点: 底层数据结构是链表,查询慢,增删快。 缺点: 线程不安全,效率高 —Set 无序,唯一 HashSet 底层数据结构是哈希表。(无序,唯一) 如何来保证元素唯一性? 1.依赖两个方法:hashCode()和equals() LinkedH
Collection集合存储自定义对象练习
weixin_34409741的博客
04-09 289
public class Student { private String name; private int age; public Student() { super(); } public Student(String name, int age){ super(); ...
Collection集合的简单介绍及使用(上)
weixin_44771551的博客
08-26 595
集合的简单介绍及使用 集合的概念:集合是对象的容器,定义了对多个对象进行操作的常用方法,可实现数组的功能。 集合与数组的区别:数组长度固定,可以存储基本类型和引用类型;集合长度不固定,只能存储引用类型。 一、Collection体系集合 (1)ArrayList # 底层结构是数组,添加原理是数组扩容,一般情况下扩容1.5倍,查询快、增删慢。 代码示例: public class TestArrayList { public static void main(String[] args) { //
Java中Collection集合遍历及存储自定义集合对象
qq_47387991的博客
04-11 578
方法一 迭代器方法: 示例代码: package collection.app.d3_collection_traversal; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; /** 目标:学会使用迭代器,遍历集合 */ public class CollectionDemo1 { public static void main(String[] ar.
集合框架_Collection存储自定义对象并遍历案例
辐_射的博客
12-14 520
package cn.itcast_03; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; /* * 练习:用集合存储5个学生对象,并把学生对象进行遍历。 * * 注意: * A:自已定义的类名不要与API中的类名相同 * B:复制代码时,很容易把复制的那
Java Collection接口详解:添加与集合操作示例
学习Collection接口对于掌握Java集合框架至关重要,理解并熟练运用这些接口和其实现类可以帮助开发者更高效地组织和操作数据,提高代码的可读性和维护性。无论是处理列表、集合还是队列,都能通过Collection接口及其...
写文章

热门文章

  • Class.forName()用法详解 62642
  • git merge合并分支,解决冲突 32742
  • java异常处理throw new RuntimeException(e) 31746
  • TCP/IP协议工作原理和工作流程 31302
  • java序列化与反序列化全讲解 19945

分类专栏

  • 中间件 8篇
  • 计算机网络 13篇
  • 数据库mysql 17篇
  • Linux 13篇
  • Spring生态 16篇
  • 安装教程 12篇
  • 源码分析 7篇
  • 数据结构与算法 8篇
  • 操作系统 10篇
  • java基础 22篇
  • 微服务 2篇
  • 网络安全 4篇
  • 并发多线程 19篇
  • JVM 15篇
  • 设计模式 11篇
  • 大数据hadoop 6篇
  • javaWeb 21篇
  • 正则表达式 1篇
  • Python数据分析处理 14篇
  • Git 11篇
  • 随笔记录 1篇
  • 性能优化 4篇

最新评论

  • DNS原理及解析过程详解

    NoobRo: 感谢分享 通俗易懂

  • map基本应用

    小星袁: 3. HashMap的Demo3中的三个地方Entry要改为Map.Entry,不然运行会报错

  • Java内存分配(多实例演示)

    qq_34728706: 只要Yong GC,S1和S0就会切换吧,不需要等到S0中的数据满

  • 设计模式概述

    ~being~: 很全面,感谢博主!

  • DNS原理及解析过程详解

    Bugbugggg: 讲的很透彻!!谢谢大佬的分享!!

大家在看

  • Leetcode 每日一题:Diameter of Binary Tree

最新文章

  • maven命令
  • aws 负载均衡clb/nlb/alb
  • MySQL索引在关联查询中的作用
2022年9篇
2021年9篇
2020年166篇
2019年19篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家情人节商场创意美陈商场年节美陈盐城高档玻璃钢花盆玻璃钢雕塑十二生肖价格珠三角玻璃钢雕塑工厂密山玻璃钢雕塑玻璃钢艺术品雕塑公园澳门玻璃钢骆驼雕塑欧式玻璃钢卡通雕塑厂家现货厦门哪里有玻璃钢孔子雕塑霍州玻璃钢牛雕塑玻璃钢雕塑策划北京中庭商场美陈多少钱时尚玻璃钢面包雕塑北京展会玻璃钢雕塑工厂玻璃钢大型雕塑定制玻璃钢浮雕不锈钢树叶雕塑报价朔州玻璃钢雕塑制作厂家惠州玻璃钢雕塑价格商场美陈灯箱北京商场美陈供货商泡沫雕塑翻制玻璃钢模具玻璃钢传统人物雕塑在哪里买商场美陈 设计方案玻璃钢雕塑定制价格立方米长沙多彩玻璃钢雕塑生产厂家安宁设计玻璃钢雕塑贵不贵成都玻璃钢花盆生产厂家中山园林玻璃钢雕塑郑州镂空校园玻璃钢雕塑定制香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化