集合常用实现类应用与总结

  什么是集合?集合主要框架是什么?这里我做了一个简单的流程图来增加我们对集合的认知。

                                       

(一)、各个接口的特点

由图我们可知Collection和Map是父接口,List、Set作为Collection的子接口;其与是各个接口相对应的实现类。接下来进行一一剖析。

特点:

Map:键值对存在,key值唯一、无序。

Collection:无序、不唯一

List:有序、不唯一

Set:无序、唯一

(二)、ArrayList和LinkedList的区别

ArrayList:在应用时经常进行查询,查询效率比较高。

LinkedList:在应用时经常进行增删改。增删改的效率比较高。

注意:效率比较低不代表不可以应用(例:ArrayList也可以进行增删改)

(三)、实例练习

1、ArrayList的应用

//实现对狗的增加与删减

//1.初始化狗狗信息
Dog dog1 = new Dog("拉布拉多");
Dog dog2 = new Dog("旺财");
Dog dog3 = new Dog("哈士奇");

Dog dog4 = new Dog("田野狗");

//2.创建ArrayList集合
List list = new ArrayList();

//3.用list集合对象存储 已经初始化好的狗狗对象信息
list.add(dog1);
list.add(dog2);
list.add(dog3);

list.remove(dog1);

//4.获取list集合对象的总数(获取集合的长度:size()方法)
System.out.println("狗狗总数:"+list.size());
//5.用传统for循环遍历狗狗信息
for(int i=0;i<list.size();i++){
System.out.println( ((Dog)list.get(i)).getName() );
}

2、LinkedList应用

//1.初始化狗狗信息
Dog dog1 = new Dog("拉布拉多");
Dog dog2 = new Dog("旺财");
Dog dog3 = new Dog("哈士奇");
Dog dog4 = new Dog("田野狗");

//2.创建ArrayList集合
LinkedList list = new LinkedList();

//3.用list集合对象存储 已经初始化好的狗狗对象信息
list.add(dog1);
list.add(dog2);
list.add(dog3);

//4.用传统for循环遍历狗狗信息
for(int i=0;i<list.size();i++){
System.out.println( ((Dog)list.get(i)).getName() );
}
System.out.println("***在头部添加狗狗*******************************");
list.addFirst(dog4);
//测试
for(int i=0;i<list.size();i++){
System.out.println( ((Dog)list.get(i)).getName() );
}
System.out.println("***获取头部的狗狗信息*******************************");
System.out.println( ((Dog)list.getFirst()).getName());
System.out.println("***删除头部的狗狗信息*******************************");
list.removeFirst();
//测试
for(int i=0;i<list.size();i++){
System.out.println( ((Dog)list.get(i)).getName() );
}

3、Set集合应用

public static void main(String[] args) {
Set<String> sets = new HashSet<String>();
sets.add("a");
sets.add("c");
sets.add("66");
sets.add("a");
sets.add("a");
sets.add("a");

//1.使用增强遍历HashSet
for(String s: sets){
System.out.println(s);
}
System.out.println("*******************************");

//2.使用迭代器遍历HashSet
Iterator<String> its = sets.iterator();
while(its.hasNext()){
System.out.println(its.next());
}
System.out.println("*******将list集合转换为set(去重)************************");
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("b");
list.add("d");
list.add("aaa");
list.add("aaa");
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
System.out.println("去重后-------->");
Set<String> setNews = new HashSet<String>(list);
for(String s:setNews){
System.out.println(s);
}
}

4、map集合

public static void main(String[] args) {
//1.创建map集合
Map<String,Object> map = new HashMap<String,Object>();

//2.给map集合存储数据
map.put("a", "1");
map.put("b", "3");
map.put("c", 5);

//3.循环遍历map
//(1)调用keySet()方法获取键值集合
Set<String> sets = map.keySet();

//(2)调用iterator()方法获取迭代器对象
Iterator<String> its = sets.iterator();

//(3)while循环中调用its对象的hasNext()方法循环读取并判断是否有下一个值
while(its.hasNext()){
//(4)调用next()方法获取key值
String key = its.next();
//(5)调用get(key)方法获取value值
System.out.println("key:"+key+" value:"+map.get(key));
}
}
}

5、map常用的方法

public static void main(String[] args) {
Map<String,Object> map = new HashMap<String,Object>();
map.put("a", "33");
map.put("b", "44");
map.put("c", "22");

//1.map中的get()方法的含义:通过某个key获取对应的value值
String value = (String)map.get("a");
System.out.println(value);

//2.获取map集合的长度
System.out.println("获取map集合的长度:"+map.size());

//3.调用remove()方法去除对应记录
map.remove("b");
System.out.println("调用remove(b),获取map集合的长度:"+map.size());

//4.调用keySet()方法获取键值集合
Set<String> sets =map.keySet();
System.out.println("键值集合:"+sets);

//5.调用values()方法获取的是map的所有value值集合
System.out.println(map.values());

//6.直接输出map集合
System.out.println(map);
}
}

四、总结

集合应用更加使Java语言接近生活,让我们更能理解。各个实现类都有其自己的特点,所以应用时更能够选择出自己所要做出的行动。

孰能生巧,多多联系。

猜你喜欢

转载自www.cnblogs.com/qixiaojian-win/p/12060978.html