JAVA集合框架(一)

android培训java培训期待与您交流! ----------


集合:
Collection是接口类型,不可以创建对象,子类已经实现了接口,可以创建对象

Collection主要分2个部分如下

|--List
|--ArrayList
|--LinkedList
--addfirst()
--addLast()
--getFirst()
--getLast()
|--Vector


|--Set
|--HashSet
|--TreeSet

java集合主要有三种类型
1. List: 是一个有序集合(存进去取出来顺序是一样的);可以放重复元素
List特有功能
--add(角标,插入元素)  在指定位置插入元素
--set(index,元素) 修改指定位置的元素
--get(int index) 获取元素的角标
--subList(startindex,endindex) 截取指定位置的元素


常用的类有:
ArrayList: 底层采用的是数组存储元素,所以ArrayList适合查询操作,不适合频繁的随机增删元素
LinkedList: 底层采用的是双向链表这种存储结构,链表适合频繁增删元素,不适合查询操作
Vector: 底层和ArrayList集合相同, 但是Vector是线程安全,效率较低,现在很少用.


2. Set:

 |-- 无顺序,不存储重复元素
  |-- 判断重复元素的依据是,对象中的hashCode方法和equals方法
  |-- 当哈希值一致时,集合会再次调用equals,当equals返回true时,判定同一对象
  |-- 当哈希值不一致时,判定不是同以对象,不在调用equals方法
  |-- 当哈希值一致时,集合会再次调用equals,当equals放回false时,判定不同一对象
  |-- HashSet数据结构是哈希表,也叫桶子结构


TreeMap:  |-- 对对象进行自然的排序
  |-- 参考的是对象是否具备比较功能,对象实现的comparable接口,复写compareTo方法
  |-- 参考compareTo方法返回值
  |-- 第二种排序,TreeSet集合,构造函数接收自定义的比较器,需要实现Comparator 接口,复写compare方法
  |-- 参考compare方法中的返回值


3. Map是一个无序的集合,集合中包含一个键值对,一个值对象
键对象允许重复,值对象不允许重复

<Iterator>Iterator是超级接口,Collection继承了Iterator
Iterator有一个方法是iterator(),是一个迭代器
Iterator靠三个方法完成迭代,可以使用迭代器去遍历集合
hasNext();
next();
remove();

4. Collection定义了集合的共性功能
4.1 添加
--add(e)
--addAll(collection)


4.2 删除
--remove(e)
--removeAll(collection)


4.3 判断
--contains(e)
--isEmpty()

4.4 获取
--iterator()
--size()

4.5 获取交集
--retainsAll()

4.6 集合变数组
--toArray()

//代码示例
import java.util.*;
class  CollectionDemo01
{
public static void main(String[] args) 
{
//创建一个集合
ArrayList<String> c = new ArrayList<String>();


//向集合中添加元素
c.add("java01");
c.add("java02");
c.add("java03");
c.add("java04");


//打印集合
System.out.println("打印集合c..."+c); 


//获取集合长度
System.out.println("size获取集合长度..."+c.size());


//删除元素
c.remove("java03");
System.out.println("删除元素..."+c);

//判断元素
System.out.println("判断元素......."+c.contains("java02"));
System.out.println("判断是否为空..."+c.isEmpty());



//在迭代时循环中next调用一次,就要hasNext判断一次
Iterator it =c.iterator();
while(it.hasNext())
{
System.out.print(it.next()+", ");
}


c = singleElement(c);
System.out.print(c);
}
public static ArrayList singleElement(ArrayList al)
{
//定义一个临时容器
ArrayList newAl = new ArrayList();
Iterator it = al.iterator();
while(it.hasNext())
{
Object obj = it.next();
if(!newAl.contains(obj))
newAl.add(obj);
}
return newAl;
}
}
 */
/*
将自定义对象作为元素存储到ArrayLIist集合中,并去除重复元素

List集合判断元素是否相同 依据的是元素的equals()方法


//代码示例
思路: 
1. 对对象进行描述,将数据封装进入对象
2. 定义容器,将数据存入
3. 取出

import java.util.*;
class CollectionDemo01
{
public static void main(String[] args)
{
ArrayList al = new ArrayList();
al.add(new Person("zhangsan01",20));
al.add(new Person("zhangsan02",21));
al.add(new Person("zhangsan03",22));
al.add(new Person("zhangsan04",23));
al.add(new Person("zhangsan05",24));


Iterator it = al.iterator();

while(it.hasNext())
{
//Person p = (Person)it.next();
Person p = (Person)it.next();
System.out.println(p.getName()+"..."+p.getAge());
}
}
}


class Person
{
private String name;
private int age;
Person(String name, int age)
{
this.name = name;
this.age = age;
}


public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}


public void setAge(int age)
{
this.age = age;
}
public int getAge()
{
return age;
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值