java 集合和map

list

+Collection 这个接口extends自 --java.lang.Iterable接口

 ├+List(接口 代表有序,可重复的集合。列表)

 │├ ArreyList     (Class 数组,随机访问,没有同步,线程不安全)

 │├ Vector        (Class  数组                   同步        线程全)

 │├ LinkedList    (Class  链表   插入删除   没有同步   线程不安全)

 │└ Stack          (Class)

 └+Set(接口 不能含重复的元素。仅接收一次并做内部排序,集)

 │├ HashSet          (Class)HashSet 是哈希表实现,其中的数据是无序的,可以且仅能放入一个null

 │├ LinkedHashSet   (Class)

 │└ TreeSet       (Class)TreeSet 是二差树实现的,其中数据是自动排好序的,不允许放入null值

+Map(接口)

 ├ +Map(接口 映射集合)

 │ ├ HashMap            (Class 不同步,线程不安全。除了不同和允许使用null 键值之外,与Hashtable大致相同)

 │ ├ Hashtable           (Class 同步   ,线程安全    。不允许实施null 键值)

 │ ├ +SortedMap 接口

 │ │   ├ TreeMap         (Class)

 │ ├ WeakHashMap     (Class)

 

 

-----------------------------------List 接口

Llist: 有序的,并且可以插入重复的元素

ArrayList : 底层由数组实现 : 用来做查询 速度快

LinkedList : 底层是由双向链表数据结构实现: 用来做增删改 速度快 CRUD

使用:

List<Person> ls = new ArrayList<Person>();

Person p = new Person("a");

Person p1 = new Person("b");

Person p2 = new Person("c");

ls.add(p);

ls.add(p1);

ls.add(p2);

ls.add(p);

// ls.remove(p);

// for (Person person : ls) {

// System.out.println(person);

// }

// for (int i = 0; i < ls.size(); i++) {

// System.out.println(ls.get(i));

// }

Iterator<Person> it = ls.iterator();//游标循环得出数据

while (it.hasNext()) {

Person person = (Person) it.next();

System.out.println(person);

}

}

 

----------------- Set 和 List 集合:声明集合是不需要指定长度

hashSet与treeSet例:

public class People {//用来操作的类

private String name;

@Override

public String toString() {

return this.name;

}

public People(String name) {

this.name = name;

}

}

import java.util.Set;

import java.util.TreeSet;

 

/**

* 使用相对较少

* 集合的相关的set的treeset的操作

* treeset实现set接口的相关功能,用于将泛型数据类型存入集合,并能进行相关的操作

* 类比hashset大致相同 可以额外进行指定的排序

* @author Administrator

*

*/

public class Tree_Set {

public static void main(String[] args) {

Set<People> q1 = new TreeSet<People>();

People p = new People("qwe");

//在集合中存入相同的对象时,它会自动的保留一个,去除相同的

q1.add(p);

q1.add(new People("xxx"));

q1.add(new People("yyy"));

q1.add(p);

for (People people : q1) {

System.out.println(people);

}

}

}

/**

* 常用

* 集合的相关的set的hashset的操作

* hashset实现set接口的相关功能,用于将泛型数据类型存入集合,并能进行相关的操作

* 相关的子方法没有完全的列出,可以通过.的方法查看

* @author Administrator

*

*/

public class Hash_Set {

public static void main(String[] args) {

Set<People> q = new HashSet<People>();

People p = new People("qwe");

//在集合中存入相同的对象时,它会自动的保留一个,去除相同的

q.add(p);

q.add(new People("xxx"));

q.add(new People("yyy"));

q.add(p);

for (People people : q) {

//输出结果可以看出,set数无序的,并且没有下标

System.out.println(people);

}

//获取集合的长度

System.out.println(q.size());

//Iterator是接口,不能直接进行new操作

//而q.iterator返回的是Iterator类型,

Iterator<People> i = q.iterator();

//如果仍有元素可以迭代,则返回 true

while(i.hasNext()) {

System.out.println(i.next());

}

}

}

 

map 接口 存储多个数据的时候 是 《K,V》 key 对应 value 值 一个key对应一个value

K 和 V 都可以放object 使用 建议 K值 建议放String 类型

 

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

 

import collection_Set.People;

/**

* hashmap 一个key 对应一个value 可以多个key对应一个value,但不能一个key对应多个value

* @author Administrator

*

*/

public class Hash_Map {

public static void main(String[] args) {

Map<String, People> q = new HashMap<String, People>();

//添加数据

q.put("one", new People("aaa"));

q.put("two", new People("bbb"));

q.put("three", new People("ccc"));

//取出value值, 返回value类型,这里即People

System.out.println(q.get("two"));

//keyset 返回相应的键值

Set<String> qw = q.keySet();

for (String string : qw) {

System.out.println(q.get(string));

}

Iterator<String> it = qw.iterator();

for (String string : qw) {

System.out.println(q.get(string));

}

}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值