集合总结

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);
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值