Java教程

Api-集合框架

本文主要是介绍Api-集合框架,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

Collection 集合的顶级接口:

Collection接口的实现子类可以存放多个元素,每个元素可以是Object

有些Collection接口的实现类,可以存放重复的元素,有些不可以

有些Collection接口的实现类,是有序的(List),有些不是有序的(Set)

Collection接口没有直接的实现子类,是通过它的子接口Set 和 List来实现的

 集合框架 List接口,必须指定一个泛型

 - ArrayList 基于数组的集合

 - Vector 基于数组的集合,更安全

- LinkedList 基于链表的集合

 1 public static <E> void main(String[] args) {
 2         // 搞一个放名字的集合
 3         List<String> as = new ArrayList<String>();
 4         // 往里面放东西
 5         as.add("小黑");
 6         as.add("小明");
 7         // 拿东西
 8         System.out.println(as.get(0));
 9         System.out.println(as.get(1));
10         // 删东西(delete,remove)
11         as.remove("小黑");
12         // 拿东西
13         System.out.println(as.get(0));
14         // 放东西
15         ArrayList<String> bs = new ArrayList<String>();
16         bs.add("啊啊");
17         bs.add("bb");
18         bs.add("cc");
19         as.addAll(bs);
20         // 不知道里面有什么东西
21         for (int i = 0; i < as.size(); i++) {
22             System.out.println(as.get(i));
23             // as.get(i) == as[i]
24         }
25         for (String s : as) {
26             System.out.println(s);
27         }
28         // 查看长度(length,size)
29         System.out.println(as.size());
30 
31         // 数组的空间必须是连续的
32         // 随机查找:根据下标取值
33         // ArrayList其实就是一个数组
34         // 扩容的原理:新建一个更大的数组,把原来的数组的内容复制过去
35         ArrayList<String> fs = new ArrayList<String>(2);
36         fs.add("a");
37         fs.add("a");
38         fs.add("a");
39 
40         // 链表和数组的区别:
41         // 数组查询效率搞
42         // 链表是扩容,删除效率搞
43 
44         // 链表:一些不连续的空间,彼此有联系
45         /**
46         LinkedList<String> ls=new LinkedList<String>();
47         ls.get(2);
48         ls.getFirst();
49         ls.getLast();
50         **/
51         }
52       }

 


 Set接口: 去重,顺序不一致无下标

 - HashSet

 - HashTable 安全

- TreeSet 排序功能的set

 1     public static void main(String[] args) {
 2 //Set集合: 去重
 3         Set<String> set=new HashSet<String>();
 4         set.add("小黑");
 5         set.add("小百");
 6         set.add("小黑");
 7         for (String s : set) {
 8             System.out.println(s);
 9         }
10         System.out.println(set.size());
11         
12         //新建一个存放数字的ArrayList
13         List<Integer> is=new ArrayList<Integer>();
14         is.add(12);
15         
16         set.clear();
17         System.out.println(set.size());
18         
19         /**
20         Set<Dog> ds = new HashSet<Dog>();
21         // 只要名字相同 认为它们是同一只狗
22         // hashset内容用的是hashcode+equals做相等判断
23         ds.add(new Dog("xiaobai","a"));
24         ds.add(new Dog("xiaobai","b"));
25         System.out.println(ds.size());
26         //给出一只狗 判断这只狗是否在集合中存在
27         Dog d = new Dog("xiaobai","c");
28         System.out.println(ds.contains(d));
29         **/
30         
31         /**
32         List ls=new ArrayList();
33         ls.add(1);
34         ls.add(2);
35         ls.add(3);
36         ls.add(4);
37         ls.add("a");
38         ls.add("b");
39         ls.add("c");
40         ls.add("d");
41         ls.add(new Dog("aa", "bb"));
42         System.out.println(ls.contains(new Dog("aa", "bb")));
43         **/
44         
45         //去重:有则不加,无则加
46         List<Dog> ls=new ArrayList<Dog>();
47         for (int i = 0; i < 3; i++) {
48             System.out.println("请输入狗的名字");
49             Scanner mys = new Scanner(System.in);
50             Dog d=new Dog(mys.next(), "bb");
51             if(!ls.contains(d)) {
52                 ls.add(d);
53             }
54         }
55         System.out.println(ls.size());
56     }
57 
58 }

 


 Map接口(S2)

 

这篇关于Api-集合框架的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!