Java集合的一部分总结

1.ArrayList

package CollentionResult;

import java.util.ArrayList;
import java.util.Collections;

public class ListResult {
	public static void main(String[] args) {
		//定义
		ArrayList<Integer> arrayList = new ArrayList<>();
		ArrayList arrayList2 = new ArrayList<Integer>();
		
		//增
		arrayList.add(1);
		arrayList.add(2);
		arrayList.add(3);
		arrayList.add(4);
		arrayList.add(5);
		arrayList.add(6);
		arrayList.add(7);
		arrayList.add(8);
		arrayList.add(9);
		arrayList.add(10);
		for(int i=0;i<5;i++) {
			arrayList2.add(i);
		}
		
		//删除
		arrayList.remove(0);	//删除下标为0的元素即arrayList[0]
//		arrayList.clear();		//删除所有
			
		//修改
		arrayList.set(1, -1);	//修改arrayList[1]为-1
		
		//查询
		int num = arrayList.get(3);
		System.out.println(arrayList2.get(2).getClass());
//		Integer num1 = arrayList2.get(2);	//这里是用第二种方法定义的,其返回的类型是
		
		//排序
		Collections.sort(arrayList);
		
		
		
		//测试输出
		System.out.println(arrayList);
	}
}

2.HashSet

package CollectionResult;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Iterator;
import java.util.TreeSet;
import java.util.function.Consumer;

public class DemoHashSet {

	public static void main(String[] args) {
		//1-定义
		HashSet hashSet = new HashSet<String>();
		HashSet hashSet_genericity = new HashSet<Integer>(); 	//a带泛型定义,
																//a要明白泛型的用处是将数据检查提前到编译期间,所以如果不定义泛型,hashSet可以接受所有类型的参数
		
		//2-新增
		hashSet.add("b");
		hashSet.add("5");
		hashSet.add("1");
		hashSet.add("2");
		hashSet.add("3");
		hashSet.add("7");
		hashSet.add("4");
		hashSet.add("6");
			
		//3-删除
		hashSet.remove("24");
		
		//4-修改
		//a这里Set是只有一个数据而且无序所以修改没有意义,等同于删除加上新增
		
		//5-查询
		//a无序且不是键值对造成的不能查询某一个值,如果你想找到这个hashSet中是否含有你要找的元素,可以用add()的返回值来判断(注意如果不存在要删除)
		//5-1利用lambda(obj是一个对象的父类,能够接受所有对象,但是println输出时,要保证此obj的toString方法是你想要的)
		System.out.println("利用lambda进行遍历");
		hashSet.forEach(obj->System.out.print(obj + " "));
		System.out.println();
		
		//5-2利用遍历器Iterator进行遍历
		System.out.println("利用遍历器Iterator进行遍历");
		Iterator iterator = hashSet.iterator();	
		while(iterator.hasNext()) {
			System.out.print(iterator.next() + " ");
		}
		System.out.println();
		
		//6-排序
		//6-1使用TreeSet进行排序
		System.out.println("6-1使用TreeSet进行排序");
		TreeSet  treeSet = new TreeSet(hashSet);	//TreeSet是一个二叉排序树结构,在构建的时候就已经进行了排序
		treeSet.forEach(obj->System.out.print(obj + " "));
		System.out.println();
		
		System.out.println("6-1-2:");
		TreeSet treeSet2 = new TreeSet(new Comparator<String>() {

			@Override
			public int compare(String o1, String o2) {
				return o2.compareTo(o1);
			}//a通过重写TreeSet的比较构造器
		});
		treeSet2.addAll(hashSet);
		treeSet2.forEach(obj->System.out.print(obj + " "));
		System.out.println();
		
		System.out.println("6-1-3:");
		TreeSet treeSet21 = new TreeSet((o1,o2)->((String) o2).compareTo((String) o1));
		treeSet21.addAll(hashSet);
		treeSet21.forEach(obj->System.out.print(obj + " "));
		System.out.println();
		
		//6-2使用ArrayList进行排序(参见ListResult)
		System.out.println("6-2使用ArrayList进行排序");
		ArrayList arrayList = new ArrayList(hashSet);
		Collections.sort(arrayList); 		//a默认为从小到大排序
//		Collections.sort(arrayList, (o1,o2)->((String) o2).compareTo((String) o1));		//a构建比较构造器能从大到小排序
		arrayList.forEach(obj->System.out.print(obj + " "));
		System.out.println();
		
		//6-3使用stream()进行排序
		System.out.println("6-3使用stream()进行排序");
		hashSet.stream().sorted().forEach(obj->System.out.print(obj + " "));
		System.out.println();
		hashSet.stream().sorted((o1,o2)->((String) o2).compareTo((String) o1)).forEach(obj->System.out.print(obj + " "));
		System.out.println();
		
		
		//6-4使用Iterator进行排序
		System.out.println("6-4使用Iterator进行排序");
//		Iterator iterator = new Iterator
		
//		System.out.println("hashSet:");
//		hashSet.forEach(obj ->new Comparable() {
//
//			@Override
//			public int compareTo(Object o) {
//				return ((String)obj).compareTo((String)o);
//			}		
//		});		//hashSet强行写比较构造器会报错
	}
}


3.LinkedHashSet

package CollectionResult;

import java.util.LinkedHashSet;
import java.util.TreeSet;

public class DemoLinkedHashSet {

	public static void main(String[] args){
	    LinkedHashSet<Integer> linkedHashSet = new LinkedHashSet<Integer>();

	    linkedHashSet.add(3);
	    linkedHashSet.add(2);
	    linkedHashSet.add(4);
	    linkedHashSet.add(1);

	    TreeSet treeSet = new TreeSet<Integer>(linkedHashSet);
	    treeSet.forEach(obj->System.out.println(obj));
	    
	    linkedHashSet.stream().sorted().forEach(num->System.out.println(num));
	    }

}

4.HashMap

package CollectionResult;

import java.util.HashMap;
import java.util.Map.Entry;

public class DemoHashMap {
	public static void main(String[] args) {
		HashMap<Integer,Integer> hashMap = new HashMap<Integer,Integer>();
		
		for(int i=1;i<10;i++) {
			hashMap.put(i, i);
		}
		
		for(Entry<Integer,Integer> entry   : hashMap.entrySet()) {
			entry.getKey();
			entry.getValue();
		}
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值