集合(一)

1.HashMap的使用

HashMap是通过键值对来存储的,是无序的

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

public class TestHashMap {
	public static void main(String[] args) {
		// 创建一个键的类型为integer类型,值的类型为String类型的Map;
		Map<Integer, String> map = new HashMap<Integer, String>();
		// 将指定键值对添加到Map集合中
		map.put(1, "张三");
		map.put(2, "李四");
		map.put(3, "王五");
		map.put(4, "孙六");
		System.out.println("返回指定键所对应的值:" + map.get(2));
		System.out.println("返回此Map集合中包含的键的集合:" + map.keySet());
		System.out.println("返回此Map集合中包含的值的集合:" + map.values());
		System.out.println("键值对的个数:" + map.size());
		System.out.println("是否包含键‘2‘对应的键值对:" + map.containsKey(2));
		System.out.println("移除键为2的键值对:" + map.remove(2));
		System.out.println("删除后集合中是否包含键2:" + map.containsKey(2));
		System.out.println("输出所有的键值对:" + map);
	}

}

  2.Collections工具类的常用方法

/**
 * 1.Collections工具类的使用
 *
 * @author vitelon
 *
 */
public class TestCollections {

	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		list.add("w");
		list.add("o");
		list.add("r");
		list.add("l");
		list.add("d");
		System.out.println("排序前:" + list);
		// 按自然顺序查找
		System.out.println("该集合中的最大值:" + Collections.max(list));
		System.out.println("该集合中的最小值:" + Collections.min(list));
		// 根据数据元素的自然顺序对集合进行升序排序
		Collections.sort(list);
		System.out.println("sort升序排序后:" + list);
		// 使用二分查找集合,以获得指定数据元素的索引;查找前序保证被查找集合是自然有序排列的。
		System.out.println("r在集合中的索引为(二分查找):" + Collections.binarySearch(list, "r"));
		// 对集合进行随机排序
		Collections.shuffle(list);
		System.out.println("在shuffle(随机排序)排序后:" + list);
		Collections.reverse(list);
		// 反转集合的数据元素
		System.out.println("在reverse(反转集合元素)排序后:" + list);
		// 在指定集合的指定两个位置处的两个数据元素进行交换
		Collections.swap(list, 1, 4);
		System.out.println("索引为1、4的元素交换后:" + list);
		// 新的数据元素替换旧的数据元素
		Collections.replaceAll(list, "w", "d");
		System.out.println("把w都换成d后的结果:" + list);
		// 指定数据元素替换
		Collections.fill(list, "s");
		System.out.println("全部填充为s后的结果:" + list);

	}

}

  3.arrylist集合的简单运用

import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

public class TestAdd_Remove {

    public static void main(String[] args) {
        remove1();
        remove2();
        remove3();
    }

    public static void remove1() {
        List<String> list = new ArrayList<String>();
        list.add("a");// 0
        list.add("b");// 1
        list.add("c");// 2
        list.add("d");// 3
        list.add("e");// 4
        for (int i = 0; i < list.size(); i++) {
            System.out.print("当i等于" + i + "时,");
            System.out.print("集合的长度为:" + list.size() + ",移除的下标元素为:" + list.get(i));
            list.remove(i);
            System.out.println(",此时集合元素为:" + list + ",此时i等于" + i);
            /*
             * 结果为b,d;移除的是下标为0,2,4;当i等于2时,移除后的集合的长度为2,而条件是小于集合的长度,所以循环结束
             */
        }
        System.out.println();
    }

    public static void remove2() {
        List<String> list = new ArrayList<String>();
        list.add("a");// 0
        list.add("a");// 1
        list.add("a");// 2
        list.add("a");// 3
        list.add("a");// 4
        for (int i = 0; i < list.size(); i++) {
            System.out.print("当i等于" + i + "时,");
            System.out.print("集合的长度为:" + list.size() + ",移除的元素下标为:" + list.indexOf("a"));
            list.remove("a");
            System.out.println(",此时集合元素为:" + list + ",此时i等于" + i);
            /*
             * 结果为a,a;移除的是下标为0,1,2;当i等于2时,集合的长度为2,而条件是小于集合的长度,所以循环结束
             */
        }
        System.out.println();
    }

    // 去掉重复元素,可从有序可重复的arrayliat集合转换成无序不重复的treeset集合
    public static void remove3() {
        List<String> list = new ArrayList<String>();
        Set<String> set = new TreeSet<String>();
        list.add("a");// 0
        list.add("b");// 1
        list.add("a");// 2
        list.add("d");// 3
        list.add("e");// 4
        // 可去掉重复
        set.addAll(list);
        System.out.println(set);
        System.out.println();
    }
}

4.ArrayList的一些方法

/**
 * 1.有序可重复,查改快
 */
import java.util.ArrayList;
import java.util.List;

public class TestArrayList {

	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		list.add("李冰冰");
		list.add("阿悄");
		list.add("蒋欣");
		System.out.println("集合中的所有内容:" + list);
		System.out.println("在下标为 1 的位置添加  周杰伦:");
		list.add(1, "周杰伦");
		System.out.println("集合中的所有内容:" + list);
		System.out.println("获取下标为 2 的元素:" + list.get(2));
		// 返回周杰伦在数据元素中下标索引值
		System.out.println("索引 周杰伦 的下标位置:" + list.indexOf("周杰伦"));
		System.out.println("把下标为 1 的数据元素替换为  古天乐   :");
		list.set(1, "古天乐");
		System.out.println("集合中的所有内容:" + list);
		System.out.println("移除下标为 1 的数据元素:");
		list.remove(1);
		System.out.println("集合中的所有内容:" + list);

	}
}

  5.ArrayList集合的运用

去掉有重复的集合

/**
 * 一个集合有重复的数据元素。把有重复的数据元素去掉再输出
 */
import java.util.ArrayList;
import java.util.Iterator;

public class TestArrayList1 {

	public static void main(String[] args) {
		// 创建一个List接口ArrayList类的对象
		ArrayList<String> list = new ArrayList<String>();
		list.add("李冰冰");
		list.add("周杰伦");
		list.add("蒋欣");
		list.add("阿悄");
		list.add("周杰伦");
		list.add("蒋欣");
		System.out.print("显示原集合所有内容:");
		System.out.println(list);
		System.out.println("***************");
		getList(list); // 去掉重复的方法

	}

	// 去掉重复数据元素的方法
	public static ArrayList getList(ArrayList list) {
		// 创建一个新的容器al
		ArrayList newlist = new ArrayList();
		// 创建一个迭代器it,遍历集合list
		Iterator it = list.iterator();
		while (it.hasNext()) {
			// 记录obj集合中的每个元素
			Object obj = it.next();
			if (!newlist.contains(obj)) // 若obj改为it.next(),则会出错。因为没有记录obj的元素.比较的是地址
			{
				newlist.add(obj);
			}
		}
		System.out.print("显示去掉重复数据元素的集合的内容:");
		System.out.println(newlist);
		return newlist;
	}

}

  6.LinkeList的使用

import java.util.LinkedList;

public class TestLinkeList {

	public static void main(String[] args) {
		LinkedList<String> link = new LinkedList<String>();
		link.add("李冰冰01");
		link.add("李冰冰02");
		link.add("李冰冰03");
		System.out.println("集合中的所有内容:" + link);
		System.out.println("在集合开头位置添加  周杰伦:");
		link.addFirst("周杰伦");
		System.out.println("集合中的所有内容:" + link);
		System.out.println("在集合结尾位置添加  周杰伦:");
		link.addLast("周杰伦");
		System.out.println("集合中的所有内容:" + link);
		System.out.println("获取集合第一个数据元素:" + link.getFirst());
		System.out.println("在集合最后一个数据元素:" + link.getLast());
		System.out.println("移除并返回集合第一个数据元素:" + link.removeFirst());
		System.out.println("集合中的所有内容:" + link);
		System.out.println("移除并返回集合最后一个数据元素:" + link.removeLast());
		System.out.println("集合中的所有内容:" + link);
	}
}

  

时间: 2024-10-10 09:16:51

集合(一)的相关文章

数组、字符串、集合

数组与集合的转换.数组与字符串的转换 ========数组变集合 String[] arr = {"abc","cc","kkkk"}; //把数组变成list集合有什么好处? /* 可以使用集合的思想和方法来操作数组中的元素. 注意:将数组变成集合,不可以使用集合的增删方法. 因为数组的长度是固定. contains. get indexOf() subList(); 如果你增删.那么会产生UnsupportedOperationExcepti

C#语言中数组和集合

数组.集合→用于储存多个同类型的数据数组 定长→用于保存固定数量的数据 在功能上,数组能实现的所有功能,集合都能实现:反之,集合能实现的某些功能,数组难以实现 占用内存少 便利速度快集合 不定长→保存的数据数量,可以在程序的执行过程中,发生变化 占用内存多 便利速度慢课时六:数组和集合 数组.集合→用于储存多个同类型的数据 数组 定长→用于保存固定数量的数据 在功能上,数组能实现的所有功能,集合都能实现:反之,集合能实现的某些功能,数组难以实现 占用内存少 便利速度快 集合 不定长→保存的数据数

通过反射了解集合泛型的本质

通过反射了解集合泛型的本质 import java.lang.reflect.Method; import java.util.ArrayList; /** * 通过反射了解集合泛型的本质 * @author shm * */ public class MethodDemo02 { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("hello"); list.add(

Java 之集合

collection(单列集合) List(有序,可重复) ArrayList     底层数据结构是数组,查询快,增删慢,线程不安全,效率高 Vector     底层数据结构是数组,查询快,增删慢,线程安全,效率低 LinkedList  底层数据结构是链表,查询慢,增删快,线程不安全,效率高 Set(无序,唯一) HashSet   底层数据结构是哈希表,依赖hashCode()和equals() 执行顺序:判断hashCode()是否相同,相同继续执行equals(),返回true不添加

集合和三元运算符

一.三元运算符 如下判断可以使用三元运算更方便的实现: a = 1b = 2 if a > 1: c = aelse: c = b 和下面是一样的: a = 1b = 2#下面这个c = a if a>1 else b 如下两种方法也是一样的:方式一: s=[]nums = list(range(1,11))for i in nums: if i%2==0: s.append(i)print(s)方式二:ss = [i for i in nums if i%2==0]print(ss)#这两种

集合函数 day4

1.集合 通过set强制转换,或者直接定义 1 nums = [0, 2, 4, 6, 8]#两种格式,带大括号与带中括号的 2 print(type(nums)) 3 aa = {0, 8, 2, 4, 6}#需要注意与字典的区别,字典是有分号的 2.交集

js算法集合(一) 水仙花数 及拓展(自幂数的判断)

js算法集合(一) ★ 最近有些朋友跟我说对js中的一些算法感到很迷惑,知道这个算法到底是怎么回事,但是就是不会用代码把它写出来,这里我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,希望能对大家有所帮助. 1.验证一个数是否为水仙花数 ①要写水仙花数的算法,我们首先来了解一下什么是水仙花数,水仙花数是指一个 3位正整数 ,它的每个位上的数字的 3次幂之和等于它本身.(例如:1^3 + 5^3+ 3^3 = 153): ②了解了什么是水仙花数我们就开始分析该怎么下手.通过定义来看

笔记:多线程-集合

阻塞队列(BlockingQueue) 当试图向队列添加元素而队列已满,或是想从队列移除元素而队列为空的时候,阻塞队列导致线程阻塞,阻塞队列接口定义如下,他继承Queue<E>接口: public interface BlockingQueue<E> extends Queue<E> { ????/** ???? * 添加一个元素,如果队列满,则抛出 IllegalStateException异常 ???? */ ????????boolean add(E e); ??

SQL入门之集合操作

尽管可以在与数据库交互时一次只处理一行数据,但实际上关系数据库通常处理的都是数据的集合.在数学上常用的集合操作为:并(union),交(intersect),差(except).对于集合运算必须满足下面两个要求: 两个数据集合必须具有同样数目的列 连个数据集中对应列的数据类型必须是一样的(或者服务器能够将其中一种类型转换为另一种类型) SQL语言中每个集合操作符包含两种修饰:一个包含重复项,另一个去除了重复项(但不一定去除了所有重复项). 0.union操作符 union和union all操作

Java—集合框架List

集合的概念 现实生活中:很多的事物凑在一起 数学中的集合:具有共同属性的事物的总和 Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象 集合的作用 在类的内部,对数据进行组织(针对作用与意义一样的属性,将他们放到一个集合中) 简单而快速的搜索大数量的条目 有的集合接口,提供了一系列排列有序的元素,并且可以在序列中快速的插入或删除有关元素 有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型 与数组相比 数组的长度