`

黑马程序员19-5:Arrays工具的使用,与集合转换,toString()的核心源码

 
阅读更多
package cn.itcast.p3.toolclass.arrays.demo;

import java.util.Arrays;
import java.util.List;


//数组转成集合。
public class ArraysDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		/*
		 * Arrays:集合框架的工具类。里面的方法都是静态的。
		 * 
		 */
		
//		int[] arr = {3,1,5,6,3,6};		
//		System.out.println(Arrays.toString(arr));
		
		demo_2();
	}

	public static void demo_2() {
		
		/*
		 * 如果数组中的元素是对象,那么转成集合时,直接将数组中的元素作为集合中的元素进行集合存储。
		 * 
		 * 如果数组中的元素是基本类型数值,那么会将该数组作为集合中的元素进行存储。
		 * 
		 */
		int[] arr = {31,11,51,61};
		
		List<int[]> list = Arrays.asList(arr);
		
		System.out.println(list);
	}

	/**
	 * 
	 */
	public static void demo_1() {
		/*
		 * 重点:List asList(数组)将数组转成集合。
		 * 
		 * 好处:其实可以使用集合的方法操作数组中的元素。
		 * 注意:数组的长度是固定的,所以对于集合的增删方法是不可以使用的
		 * 否则会发生UnsupportedOperationException
		 * 
		 * 
		 */
		String[] arr = {"abc","haha","xixi"};
		
		boolean b = myContains(arr, "xixi");
		System.out.println("contains:"+b);
		
		List<String> list = Arrays.asList(arr);
		boolean b1 = list.contains("xixi");
		System.out.println("list contaisn:="+b1);
//		list.add("hiahia");//UnsupportedOperationException
		
		System.out.println(list);
	}
	
	public static boolean myContains(String[] arr,String key){
		for (int i = 0; i < arr.length; i++) {
			if(arr[i].equals(key))
				return true;
		}
		return false;
	}
	
	//toString的经典实现。
	public static String myToString(int[] a){
		int iMax = a.length - 1;
		if (iMax == -1)
	            return "[]";

        StringBuilder b = new StringBuilder();
        b.append('[');
        for (int i = 0;  ; i++) {//中间省略条件判断,提高了效率。
            b.append(a[i]);
	    if (i == iMax)
	    	return b.append(']').toString();
           b.append(", ");
        }
	}

}


分享到:
评论

相关推荐

    react-final-form-arrays:渲染和编辑数组的组件:chequered_flag:React Final Form

    :money_bag: :chequered_flag: React最终形式的数组安装npm install --save react-final-form-arrays react-final-form final-form final-form-arrays 或者yarn add react-final-form-arrays react-final-form ...

    final-form-arrays::chequered_flag:最终形式的阵列突变体

    7. **源码分析**:从压缩包文件名`final-form-arrays-master`来看,这可能包含了`final-form-arrays`库的源代码仓库主分支。如果你想要深入了解其工作原理,可以克隆或下载这个仓库,查看源代码,学习它是如何实现...

    黑马程序员Javase笔记

    Java是世界上最流行的编程语言之一,尤其在...总结来说,"黑马程序员Javase笔记"涵盖了Java的基础语法、内存管理、面向对象编程、集合框架以及泛型和Map等内容,这些都是成为一名合格Java开发者必须掌握的核心知识。

    黑马程序员入学Java精华总结

    ### 黑马程序员入学Java精华总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是指通过编写计算机能够理解的指令来解决问题或完成特定任务的过程。这些指令通常被组织成算法,并使用某种编程语言实现。...

    黑马程序员面试宝典(java)2018版

    - 基本数据类型:了解整型、浮点型、字符型和布尔型的存储与使用。 - 数据类型转换:掌握自动类型提升和强制类型转换。 - 数组:理解一维、二维数组的声明、初始化和遍历。 3. **字符串(String)** - String类的...

    黑马程序员_java8新特性详解笔记和源码

    Java 8是Java语言发展的一个重要里程碑,引入了许多创新性的特性和改进,...黑马程序员的Java8新特性详解笔记和源码提供了深入学习这些概念的资源,结合实际的代码示例,将有助于你更好地理解和掌握Java 8的核心特性。

    黑马程序员入学Java知识

    ### 黑马程序员入学Java知识 #### Java概述与基础知识 1. **何为编程?** - 编程是通过特定的计算机语言来编写指令,让计算机执行一系列任务的过程。 2. **Java语言概述,历史、特点** - **概述**:Java是一种...

    NGUI Next-Gen UI 3.9.1

    - FIX: NGUIEditorTools.DrawProperty can now draw arrays. - FIX: Added mdeletrain's broken dynamic font fix. - FIX: Drag operation now cancels tooltips properly. - FIX: UITextList should now wrap ...

    matlab导入excel代码-utl_multiple-regressions-using-arrays:使用数组的线性回归或逐行回归。关键

    matlab导入excel代码utl_multiple-regressions-使用数组 使用数组的线性回归或逐行回归。 关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区stackoverflow statistics人工智慧AI Python R Java ...

    sort-deep-object-arrays:对嵌套在其他对象或数组中的对象和对象数组进行排序

    v0.12或更高版本用法作为项目的本地依赖项安装: yarn add sort-deep-object-arrays 在命令行中运行npx sort-deep-object-arrays /path/to/input/file.json 要求并在您的代码中使用它: const sortDeepObjectArrays ...

    Loops-and-Arrays:JS练习4

    在JavaScript编程中,循环与数组是两个至关重要的概念,它们在构建动态和交互式的Web应用时发挥着核心作用。在"Loops-and-Arrays: JS练习4"中,你将深入学习如何有效地利用这些工具来处理数据和执行重复任务。 **...

    siftjava源码-MaoDataStructures:Arrays(数组)、Stacks(栈)、Queues(队列)、LinkedList

    Arrays(数组)、Stacks(栈)、Queues(队列)、LinkedList(链表)、Recursion(递归思想)、BinarySearchTree(二分搜索树)、Set(集合)、Map(映射)、Heap(堆)、PriorityQueue(优先队列)、SegmentTree(线段树)、Trie(字典树)...

    BW-Binary-Arrays:BW 作品 1

    在IT领域,尤其是在编程实践中,二进制数组(Binary Arrays)是经常被使用的数据结构,尤其是在处理二...通过对提供的"BW-Binary-Arrays-master"文件进行分析和实践,可以深入理解上述知识点并将其应用于实际项目中。

    make-css-file-arrays.rar_little

    标题中的"make-css-file-arrays.rar_little"可能是指一个压缩包,其中包含了一个名为"make-css-file-arrays.pl"的Perl脚本,这个脚本的目的可能是为了优化CSS(层叠样式表)文件,通过压缩空白字符来减小文件大小。...

    java种菜源码-autofill-arrays:快速轻松地填充数组和其他集合

    您还可以将它与其他类似数组的集合对象/类型一起使用,如List 、 Set 、 Tuple , 等等。 可用类别 Flowers , Fruits , Colors , Birds , Animals , Gems , Directions , Insects , Fish , Foods , Drinks...

    黑马程序员Java函数式编程全套视频教程,Lambda表达式、Stream流、函数式编程一套全通关1

    本套黑马程序员的Java函数式编程视频教程涵盖了Lambda表达式、Stream流以及函数式编程的核心概念,旨在帮助学习者全面掌握这一现代编程技术。 Lambda表达式是Java 8引入的关键特性,它允许我们以更简洁的方式定义...

    opencv2.1学习文档

    接下来,文档介绍了对数组的操作(Operations on Arrays),这是图像处理中的核心概念,包括但不限于: - cvAbsDiff:计算两个数组绝对差。 - cvAdd、cvAddS:用于数组的加法操作,可以是同类型数组或标量。 - ...

    程序员为什么还要刷题-di-workshop-04-arrays-loops:数组和循环

    程序员常刷题研讨会 4 - 数组和循环 您将再次结对工作 -驾驶员/导航员风格,与以前相同。 首先像往常一样设置车间。 对于以下每个粗体问题: :speaking_head: 讨论 :woman_technologist: 改变 :eyes: 观察 :...

Global site tag (gtag.js) - Google Analytics