JAVA数组和JAVA集合类的对象操作-Java基础-Java-编程开发

Java编程基础教程:数组和集合的应用 作者:禅与计算机程序设计艺术 1.背景介绍 概述 Java是一个非常流行的高级编程语言,它的应用也越来越广泛。在企业界、金融界、政府部门等领域都有很多知名公司在使用Java进行开发。 但是作为一个程序员,学习Java编程并不是一件轻松的事情。由于Jav 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

JAVA数组和JAV集合类的操作如果你做过很多java程序,你可能对java集合类很熟悉,例如:Vector和ArrayList。你可以创建一个集合并向其中增加元素:

List lst = new ArrayList(); lst.add(new Integer(37));

在这个特殊的范例中,一个整型值37用于构造一个Integer封装类对象,然后那个对象被加入到列表。

这个简单的范例展示集合的一个基础-他们用于操纵一列对象,其中的每个对象是一个类或者接口类型。因此,一个ArrayList可以包含Object,String,Float以及Runnable类型的对象。集合类不能用于原始数据类型的列表,例如整型数组。

如果你在你的程序中使用原始类型的数组,你如何操纵它们呢?这个技巧就给你展示几个你可以使用的技术。

第一个技术是排序。java.util.Arrays类包含一套排序和查找数组的类方法,例如:

import java.util.Arrays;

public class ArrayDemo1 {

public static void main(String args[]) {

int vec[] = {37, 47, 23, -5, 19, 56};

Arrays.sort(vec);

for (int i = 0; i < vec.length; i ) {

System.out.println(vec[i]);

} } }

这个演示程序初始化一个整数数组然后调用Arrays.sort升序排序那个数组。

类似的,你可以在排完序的数组上进行二分法查找:

import java.util.Arrays;

public class ArrayDemo2 {

public static void main(String args[]) {

int vec[] = {-5, 19, 23, 37, 47, 56};

int slot = Arrays.binarySearch(vec, 35);

slot = -(slot 1);

System.out.println("insertion point = " slot); } }

这个程序有个微妙的概念,如果二分法查找失败它将返回:

-(insertion point) - 1

这个演示程序以参数35调用查找方法,而那个参数在数组中不存在,方法返回值-4,如果这个值加一再取其负数就得到3,这就是35应该被插入到数组中的位置,换言之,值-5, 19和23在数组中占据的位置是0,1和2。因此值35应该在索引3的位置,而37, 47以及56顺延。搜索方法并不进行实际的插入操作而只是指出应该在何处插入。

除了排序和查找,我们还可以对原始类型数组做什么?另一个有用的技术是将一个原始数组转换为等价的对象类型数组。每个对应元素使用它们的封装器类,例如在封装数组中,37成为Integer(37)。

import java.util.Arrays;

import java.lang.reflect.Array;

public class ArrayDemo3 {

// if input is a single-dimension primitive array,

// return a new array consisting of wrapped elements,

// else just return input argument

public static Object toArray(Object vec) {

// if null, return

if (vec == null) {

return vec; }

// if not an array or elements not primitive, return Class cls = vec.getClass();

if (!cls.isArray()) {

return vec; }

if (!cls.getComponentType().isPrimitive()) {

return vec; }

// get array length and create Object output array int length = Array.getLength(vec);

Object newvec[] = new Object[length];

// wrap and copy elements

for (int i = 0; i < length; i ) {

newvec[i] = Array.get(vec, i); }

return newvec; }

public static void main(String args[]) {

// create a primitive array

int vec[] = new int[]{1, 2, 3}; // wrap it Object wrappedvec[] = (Object[])toArray(vec);

// display result

for (int i = 0; i < wrappedvec.length; i ) { System.out.println(wrappedvec[i]); } } }

方法"toArray"的参数是一个Object对象(数组可以被赋值给一个Object引用)。如果参数是null或者代表的不是原始类型数组那么这个方法简单的返回参数值。java.lang.Class工具类用于判断参数是否是一个数组并获取数组的底层元素的类型。

一旦做完这些检查,使用java.lang.reflect.Array工具类的反射工具方法就可以获取原始数组的长度并获得数组的单个元素。Array.get获得的每个元素被返回到封装器类中,例如Integer或者Double。

最终的范例基于前面的那个并向你展示如何在数组上使用集合特性。这假设你已经有一个对象数组。

import java.util.Arrays;

import java.util.List;

public class ArrayDemo4 {

public static void main(String args[]) {

Object vec[] = {new Integer(37), new Integer(47)}; List lst = Arrays.asList(vec);

lst.set(1, new Integer(57));

for (int i = 0; i < vec.length; i ) { System.out.println(vec[i]); } } }

在这个程序中,vec是一个对象数组,包含Integer(37)和Integer(47),然后Arrays.asList被调用。它返回一个集合(List接口类型),使用数组作为集合的后台存储。换言之,ArrayList这样的集合类型在它内部有某种存储类型去存储集合元素。在这个例子中,使用的存储类型是作为参数传。

Java语言基础教程:全面掌握编程核心 本文还有配套的精品资源,点击获取 简介:本教程由张化祥和刘弘编著,是初学者掌握Java编程的宝贵资源。教程内容包括Java语言的语法基础、继承与多态、对象与类、集合类、抽象类与接口、数组与字符串、异常处理、Java IO系统、多线程编程以及图形用户界面(GUI)。通过本教程的学习,读者将全面了解Java编程的基础,并为进阶学习和实际项目开发打下坚实的基础。 1. ... 阅读详情

相关推荐

机器学习模型系列:随机森林的原理和示例介绍

让我们总结一下与其他监督式机器学习模型相比,随机森林的优缺点。优点在许多真实数据集上已知能提供高度准确的模型。通过结合多个决策树的预测,可以捕捉数据集中的复杂交互和模式。通过自动选择相关特征,可以有效处理高维数据集。与单个决策树相比,不容易过拟合。自助采样和每个节点的随机特征选择有助于减少过拟合并改善泛化能力。可以处理包括数值和分类特征在内的异构数据类型。可以处理缺失值而不需要填充。提供特征重要性的度量。集成中的树可以并行训练,因为每个决策树可以独立构建。模型的泛化误差具有理论上的界限。

数智笔记 1万+

利用JAVA数组模拟集合实现简单的对象数组的添加

public class Student {    Student[] stu;    int count;    String name;    int age;    public Student(){     stu=new Student[5];    }    public Student(String name,int age){       this.name=n

Jonly_Liu的专栏 1465

SAP物料主数据表结构全解析:ABAP开发与MM模块必知必会

本文深入解析SAP物料主数据的核心表结构,涵盖MARA、MAKT、MARC、MARD及MVKE等关键表。详细阐述了物料主数据在ABAP开发和MM模块中的存储逻辑与关联关系,帮助开发者和顾问高效处理数据查询、增强功能及业务故障排查,是掌握SAP物料管理基础的必读指南。

weixin_29216957的博客 383

JAVA数组和JAV集合类的操作

如果你做过很多java程序,你可能对java集合类很熟悉,例如:Vector和ArrayList。你可以创建一个集合并向其中增加元素:    List lst = new ArrayList();    lst.add(new Integer(37));在这个特殊的范例中,一个整型值37用于构造一个Integer封装类对象,然后那个对象被加入到列表。这个简单的范例展示集合的一个基础-他们用于操纵一

凯尔探索 7838

超详细网安学习路线(Day1-Day2)

渗透测试(Penetration Testing),就是一种通过模拟恶意攻击者的技术与方法,挫败目标系统安全控制措施,取得访问控制权,并发现具备业务影响后果安全隐患的一种安全测试与评估方法。简单来说,就是合法去入侵别人的系统,来帮助其找出漏洞,增强防护能力。

aobulaien001的博客 3392

基于Matlab与Gurobi的园区微电网风光储协同规划:从独立运营到联合优化的建模实战

本文详细介绍了如何利用Matlab与Gurobi进行园区微电网的风光储协同规划建模实战。通过构建从独立运营到联合优化的数学模型,结合Yalmip工具箱,旨在解决源荷不匹配问题,实现储能系统的最优配置与运行,从而降低总供电成本并提升新能源利用率。

weixin_29053073的博客 142

[Java基础] 创建一个对象数组

先从一段错误的代码切入,然后在后面提出正确的创建方法。先考虑这段代码:public class Student { private int age; private String name; public void Student() { this.age = 21; this.name = "someone"; } public v

lkxlaz的博客 1万+

国密SSL实战:手把手教你用Wireshark抓包分析GMTLS协议(附证书链验证技巧)

本文提供了一份国密SSL(GMTLS)协议的实战抓包分析指南。通过详细讲解Wireshark的配置、GMTLS握手流程的捕获与筛选,以及双证书机制和证书链的深度解析,帮助工程师和开发人员掌握使用Wireshark排查国密SSL连接问题、进行密评和协议调试的核心技巧。

rgv234567的博客 503

Java新手:对象数组以及ArrayList集合类

对象数组 基本类型的数组:存储的元素是基本类型,例如int[] arr ={1,2,3}; 对象数组:存储的元素是引用类型。例如Student s = new Student[3];Student是一个自定义的学生类,s[0],s[1],s[2]的元素类型都是Student类,都可以指向一个Student对象。 //自定义的学生类 publicclass Student { private ...

java新手的博客 5600

医学图像的对抗攻击:模型安全性与鲁棒性分析

医学图像的对抗攻击:模型安全性与鲁棒性分析 ,人工智能,计算机视觉,大模型,AI,本文围绕医学图像的对抗攻击展开,分析了其对AI模型的威胁。介绍了对抗样本定义、攻击原理,以及FGSM、BIM、PGD等常见攻击方法,还给出了相关代码示例。阐述了攻击对模型诊断准确性和可信度的影响,提出对抗训练、输入预处理、模型集成等提升模型安全性与鲁棒性的方法,探讨了评估指标、数据集和流程,分析了实际应用中的挑战与应对策略,最后展望了未来发展趋势。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 18万+

【漏洞复现】用友U9 UMWebService.asmx 任意文件读取漏洞

用友U9存在任意文件读取漏洞,未授权的攻击者可以通过该漏洞读取服务器任意文件,造成敏感信息泄露。

qq_67810151的博客 620

java集合对象声明_Java基础————集合类

原标题:Java基础————集合类理解集合类集合类存放于java.util包中。集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。集合类型主要有3种:set(集)、list(列表)和map(映射)。http://www.backboneitgroup.cn(1)集集(set)是最简单的一种集合,它的对象不按特定方式排序,只是...

weixin_27102543的博客 1420

CATIA二次开发核心技术:多实体零件自动化拆解与装配生成深度解析(零件转产品)

CATIA二次开发核心技术:多实体零件自动化拆解与装配生成深度解析

KE17RS的博客 2146

JAVA基础——数组、面向对象

JAVA基础包含数组+面向对象。视频学习参考狂神说java

weixin_56451428的博客 1760

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java集合类和数组概述及区别

一、数组 定义:数组是java语言内置的数据类型,线性的序列,长度固定,容量不变,生命周期不能改变,会有边界检查 a)动态初始化,指定长度,格式:数据类型[]数组名称 = new数据类型[长度]; int[] arr = new int[10]; 数组元素的默认值规则为:整数默认为0,浮点数默认为0.0,字符默认为’\u0000’...

deerplay的博客 548

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Java-集合类

1、Java中的集合类可以分为两大类:一类是实现Collection;另一类是实现Map接口。 2、Collection:add、addAll;clear、remove、removeAll;contains、containsAll、isEmpty;size;iterator(迭代器)。 3、增强for,编译器会自动换成 Iterator迭代器。 4、集合类容纳的对象都是Object类的实例,一旦把一个对象置入集合类中,它的类信息将丢失,也就是说,集合类中容纳的都是指向Object类对象的指针。

weixin_40017062的博客 1326

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

java 创建集合类数组_Java集合 -- ArrayList集合及应用

JAVA集合对象数组集合类之ArrayList学生管理系统斗地主案例NO.one 对象数组1.1 对象数组描述A:基本类型的数组:存储的元素为基本类型int[] arr={1,2,3,4}B:对象数组:存储的元素为引用类型Student[] stus=new Student[3];Student代表一个自定义类Stus数组中stus[0],stus[1],stus[2]的元素数据类型为Studen...

weixin_30877775的博客 3767

JAVA笔记- JAVA集合类之ArrayList详解

1- 集合概述 A) 面向对象编程语言对事物的描述都是通过对象来体现的。 为了方便对多个对象进行操作,我们就必须对这多个对象进行存储,而要想对多个对象进行存储,就不能是一个基本的变量,而应该是一个容器类型的变量。 B):到目前为止,学习过了哪些容器类型的数据呢?——StringBuilder,数组。 StringBuilder的结果只能是一个字符串类型,不一定满足我们的需求。 数组的长度是固...

鬼刺 5445

Java的集合类介绍

关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。Java基础部分算法与编程数据库部分流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。

2401_83817916的博客 1010

java对象数组

●所谓对象数组,就是包含了一组相关的对象,但是在对象数组的使用中读者一定要清楚一点,数组一定要先开辟空间,但是因为其是引用数据类型,所以数组里面的每一个对象都是null值,则在使用的时候数组中的每一个对象必须分别进行实例化操作。●所谓对象数组,就是包含了一组相关的对象,但是在对象数组的使用中读者一定要清楚一点,数组一定要先开辟空间,但是因为其是引用数据类型,所以数组里面的每一个对象都是null值,则在使用的时候数组中的每一个对象必须分别进行实例化操作。♦类 对象数组名称[] new 类[数组长度];

m0_64932024的博客 3239

Java对象和数组操作

        在java虚拟机中,内存只能以对象形式在垃圾收集堆中分配。除非作为对象的一部分,否则不能为基本类型在堆中分配内存。如果需要在必须使用对象引用的场合使用基本类型,可以从java.lang包中为类型分配一个包装器对象。         只有对象引用和基本类型可以在java的栈中已局部变量形式存在。java栈不能容纳对象。         java虚拟机中的对象和基本类型的结构分离,...

kyfxing的博客 776

android开发之java基础 (回顾 字符串的操作 数组操作   数字处理类 集合类)

java基础有多重要 不需要在过多的阐述了吧 不划水 也是弥补我之前落下的java基础 今天主要回顾记忆 java 中字符串详解(关于字符串的操作) 数组操作 数字处理类 集合类 首先回顾一下java 8种基本数据类型(内存空间8位等于1字节) 基本数据类型包含{ 数值型、字符型(char(存储单个字符))、布尔型(boolean 逻辑类型)} 数值型包含{整数类型、浮点类型} 整数类型4种(byte(8位)、short(16位)、int(32位)、long(64位)(...

unknown_315的博客 702

Java基础:对象数组的含义、长度可变的ArrayList集合类

对象数组 其实对象也可以放在数组里。对象数组,即存储的内容为类对象的数组(实际存放的是对象地址),对于一个叫做Person的类,对象数组array的创建方法如下: Person[] array = new Person[3]; // 长度为3的用于存放Person类对象的数组 然后就可以实例化出3个对象,并将3个对象的地址赋给array[0]、array[1]、array[2]。 然而,很多时候我们在定义数组时不能预先确定其长度,而数组有一个缺点,程序运行期间长度不可变。 ArrayList类 下面的例子

Yqf745873310的博客 874

Java中有哪些集合类?常用的几种java集合类总结 详细解读 Java 的集合类

Java 的集合框架是一个统一的架构,用于表示和操作一组对象。它提供了多种接口和类,遵循了一定的设计原则,具备更高的灵活性和可扩展性。Collection:集合的根接口。List:有序集合,允许重复元素。Set:不允许重复元素的集合。Map:键值对集合,键唯一但值可以重复。Queue:用于表示数据结构中的队列。Java 集合类框架为开发者提供了强大的工具,以方便有效地操作数据。通过理解每种集合接口及其实现的特性,可以帮助我们在开发过程中做出更好的选择。

智通全网络工作室的博客 2099

Java学习之:对象数组的创建和使用

文章目录什么是对象数组对象数组实例 什么是对象数组 对于一个普通的数组来说: 这里使用 int 创建了一个数组,存放 int 类型的数据 顾名思义,如果我们 使用一个对象类型创建的数组全部用来存放这类的对象,那么这种数组就叫做对象数组。 对象数组实例 【定义一个 Person 标准类】 public class Person { private int age; private String name; public Person(int age, String name) {

qq_42902997的博客 1873
上一篇: Java Web 框架的"甜点"-Java基础-Java-编程开发
下一篇: 技巧:Java垃圾收集器使用小诀窍-Java基础-Java-编程开发
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值