欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

集合总结

程序员文章站 2022-07-08 10:38:33
...
Set 无序不重复 实现类HashSet
SortedSet 按大小有序不重复 实现类TreeSet
Llist按位置有序 (产生位置索引由此可重复)
实现类ArrayList(队列管理)查询效率高;LinkedList(链表)增删改效率高

当以上容器接口存放了自定义类对象时要求自定义类
set
重写equals()方法 实现comparable接口 重写equals() 重写equals()
和hashCode()方法 重写compareto()

1、 与List接口相关的容器java为其提供了操作的工具类Collections 如:
1) sort()方法,排序
//对alist容器中的所有元素由小到大排序Collections.sort( alist );
2)binarysearch()方法//使用该方法有个前提: 容器的元素必须先排序,后查找。
int loc = Collections.binarySearch(alist, key);
//采用二分查找法,在alist容器中查找key元素。若存在,则反馈它的位置;反之,则反馈一个负数。
3)//对alist容器中的所有元素进行随机排序(随机打乱它们的位置)
Collections.shuffle( alist );
4) //对alist容器中的所有元素进行逆序排列(头变尾,尾变头)
Collections.reverse( alist );
5)//对alist容器中的所有元素进行替换为指定的元素。
Collections.fill(alist, "Hello");//把所有元素替换为Hello
和遍历操作的接口ListIterator:正向遍历listIterator() ;逆向遍历listIterator(int n)
2、Java5.0新增特性泛型:为容器贴上标签明确其存储类型(提高了编程效率和准确性)
如List<String> list = new ArrayList<String>();

Map接口的特性及其常用实现类:
5) 它的常用实现类为: HashMap
HashMap的特性:
1) 元素由键和值构成。
2) 元素的键是唯一的,不重复。
3) 元素是无序的。即: 元素没有按键排序。
4) 元素不重复。当添加重复的元素时,会采用覆盖技术。
5) 当元素键为自定义类的对象时,则该类中必须重写equals()和hashCode()两个方法。
Map接口的子接口为: SortedMap
SortedMap接口的特性及其实现类为: TreeMap.
结论: 当元素的键为自定义类的对象时,则该类必须实现Comparable接口,
重写compareTo()方法;同时,在重写方法时尽量对对象的所有属性比较大小。

最后 集合与数组
集合容器可大可小 数组必须指定长度
其次存放类型
集合与数组之间可以相互转换如:
int[] a = { 1, 2, 3 };
List list = Arrays.asList(a);等等…
集合遍历
Map遍历三种方式
1. map.keySet() 获得键,由键得到value值
2. map.values()直接获得值
3. map.entrySet() 这种方式效率最高!!

public void test2() throws Exception {
HashMap< String, String> map = new HashMap<String, String>();
for (int i = 0; i < 100; i++) {
map.put(""+i," hello");
}
//方法一:keySet
/*Iterator<String> it = map.keySet().iterator();
while(it.hasNext()){
String key = it.next();
String value = map.get(key);
System.out.println(value);
}*/

/*for(String item:map.keySet()){
System.out.print(item+"\t");
String value = map.get(item);
System.out.println(value);
}*/
//方法二:entrySet()
// Iterator it = map.entrySet().iterator();
// while(it.hasNext()){
// Map.Entry entry = (Entry) it.next();
// String key = (String) entry.getKey();
// String value = (String) entry.getValue();
// System.out.print(key+"\t");
// System.out.println(value);
// }

// for(Map.Entry entry :map.entrySet()){
// String key = (String) entry.getKey();
// String value =(String) entry.getValue();
// System.out.print(key+"\t");
// System.out.println(value);
// }
//方法三: values()
for(String va :map.values()){
System.out.println(va);
}
}