首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >类型浇铸点值

类型浇铸点值
EN

Stack Overflow用户
提问于 2011-12-01 11:47:06
回答 2查看 88关注 0票数 0

我正在为我的Java入门课程编写一份作业,目前我正试图对一组整数进行排序。

我从一个点对象数组p获取值,并将它们传递给一个大小相同的int数组pSize。我只需要把x的point对象的值输入到int并对数组进行排序。然而,这种情况并没有发生。以下是代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.util.*;
import java.awt.*;

public class doCheckWin {
// Class Fields
private Point[] p;
private static int pSize;

/*
        Class Constructor.
        Creates an array of point objects that holds the user's
        location of pieces.
*/
public doCheckWin(Point[] p) {
        this.p = p;
        pSize = p.length;
}

public void checkHorizontal() {
        int[] col = new int[pSize];
        for(int i=0; i<p.length; i++) {
            col[i] = (int)p[i].getX();
        }
        Arrays.sort(col);
        System.out.println(Arrays.toString(col));
    } 
}

下面是传递point对象的另一个类的方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void checkWin(Point[] p) {
    doCheckWin dcw = new doCheckWin(p);
    dcw.checkHorizontal();
}

当我打印要屏幕的数组时,值是ints...using,getX将其更改为双倍,但当类型转换为int时,它不起作用.

问题是:

  1. x (即: 10.0)的值类型转换为整数不起作用。在屏幕上打印结果时,我仍然可以看到10.0.
  2. Arrays.sort(col)没有对数组进行排序。

我得到的示例输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
10.0
13.0
12.0
11.0
3.0

我想要什么

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
3
10
11
12
13

编辑:下面是打印数组的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Arrays.sort(col);
for(int i=0; i<col.length; i++) {
    System.out.println(col[i]);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-01 12:09:12

你的观点对象的意义是什么(没有双关意)?

p[]的内容是什么?是像你说的点对象数组吗?如果是,为什么要从point对象创建point对象?

看起来你想做这样的事情:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int[] col = new int[pSize];
for (int i = 0; i < p.length; i++) {
    col[i] = (int)p[i].getX();
}
Arrays.sort(col);
System.out.println(Arrays.toString(col));

好像对我有用。

下面是一个示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int pSize = 5;
Point[] p = new Point[pSize];

Random z = new Random();
for (int i = 0; i < p.length; i++) {
    p[i] = new Point(i+z.nextInt(5), i);
}

System.out.println(Arrays.toString(p));

int[] col = new int[pSize];
for (int i = 0; i < p.length; i++) {
    col[i] = (int)p[i].getX();
}
Arrays.sort(col);
System.out.println(Arrays.toString(col));

这意味着:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[java.awt.Point[x=3,y=0], java.awt.Point[x=3,y=1], java.awt.Point[x=6,y=2], java.awt.Point[x=3,y=3], java.awt.Point[x=4,y=4]]
[3, 3, 6, 3, 4]
[3, 3, 3, 4, 6]
票数 0
EN

Stack Overflow用户

发布于 2011-12-01 11:51:24

  1. --你的Point对象什么也不做。通过对存储在col中的整数进行排序,
  2. 显然不会对任何Point对象或p进行排序。您修改的所有内容都是col的内容,但是它们与其他数据断开了连接。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8347362

复制
相关文章
Swift 值类型和引用类型
Swift中的类型分为两类:一,值类型(value types),每个值类型的实例都拥有各自唯一的数据,通常它们是结构体,枚举或元组;二,引用类型(reference types),引用类型的实例共享它们的数据,通常是一个类。在这篇文章中我们将会探索值类型和引用类型的价值,以及如何在它们二者间抉择。
全栈程序员站长
2022/07/15
7370
swift底层探索 03 - 值类型、引用类型swift底层探索 03 - 值类型、引用类型
先上个自己的简答理解: * 值类型 : 在内存中直接保存值,有点类似oc中targetPoint; * 引用类型 : 在内存中保存指针地址;
用户8893176
2021/08/09
8570
swift底层探索 03 - 值类型、引用类型swift底层探索 03 - 值类型、引用类型
[深入解析C#] 可空值类型
Tony Hoare于1965年在Algol语言中首次引入了null引用的概念,后来他把这项举措称为“十亿美金的过失”。无数开发人员饱受NullReferenceException(.NET)、NullPointerException(Java)等的折磨。由于此类问题的普遍性,Stack Overflow上有大量与之相关的典型问题。既然可空特性如此声名狼藉,为何C# 2以及.NET 2.0要引入可空值类型呢?
科控物联
2022/03/29
2.3K0
结构struct(值类型)在实际应用要注意的二点:
.Net中的数据类型大致可以分为二类:一类是值类型,一类是引用类型;结构(struct)是值类型,从性能上考虑值类型更有优势(关于值类型与引用类型的详细讨论不在本文范围内,大家可以去查阅相关资料).对于一些特定场合:比如仅需要存储数据,不需要体现具体方法的时候,建议大家用struct来代替class,但在使用过程中,有几个容易被忽视的细节. 1.使用struct存储数据做为数据源,与数据显示控件绑定时: 代码如下: Code protected void Page_Load(object sender, 
菩提树下的杨过
2018/01/22
9550
C# 引用类型和值类型
1、引用类型 FCL(Framework)中的大多数类型都是引用类型,引用类型总是在托管堆中分配的,C#的new操作符会返回对象的内存地址,也就是指对象数据的内存地址。在使用引用类型时,存在以下性能问题,这是我们在开发中必须要注意的: a、内存必须从托管堆上分配(也就是说每new一个对象,会占用内存,对象过多就会导致内存占用) b、 堆上分配的每个对象都有一些额外的成员,这些成员必须初始化 c、对象中的其他字节(为字段而设),总是设为0 d、从托管堆中每分配一个对象,可能强制执行一次垃圾回收操作 所以当我们
郑小超.
2018/01/26
9080
c#值类型与引用类型区别
值类型对象的两种表示方式:未装箱和已装箱,引用类型总是处于已装箱 值类型从System.ValueType派生。该类型提供了与System.Object相同方法,但System.ValueType重写了Equals方法, 能在两个对象的自断值完全匹配的前提下返回true。比外,System.ValueType重写了GetHashCode方法,生成哈希码时,这个重写方法所用的算法会将对象的实例字段中的值考虑在内。由于这个默认实现存在性能问题,所以定义自己的值类型时应重写Equals和GetHashCode方法
莫问今朝
2019/02/25
8030
.NET中的值类型与引用类型
这是一个常见面试题,值类型(Value Type)和引用类型(Reference Type)有什么区别?他们性能方面有什么区别?
AI.NET 极客圈
2019/08/09
1.9K0
string 是值类型,还是引用类型(.net)
稍微有点.NET 编程知识的人都知道 string是引用类型。我为什么还有此一问?因为string的使用非常像值类型。举个例子:
跟着阿笨一起玩NET
2018/09/18
1.6K0
第183天:引用类型和值类型
一、内存分配 1、数值型内存分配 1 <script> 2 var num1; //这个时候不进行内存分配 3 var num3=9;//分配内存 4 var num4=num3;//会不会分配 5 6 // 这里到底分配还是不分配内存?? 7 // 答案 --分配内存 彼此拥有独立的内存空间,互不影响 8 console.log(num3); 9 console.log(num4); 10 11 num3=3333
半指温柔乐
2018/09/11
4090
原生JS | 值类型与引用类型变量
HTML5学堂-码匠:在JavaScript中,存在着两种不同的变量类型,一种是值类型变量,一种是引用类型变量。其中数组、对象、函数都属于引用类型变量,数值、布尔值、null、undefined、字符串属于值类型变量,不同类型变量在参数传递方面有不同的运行机制。 结果不同的两个实例 实例1 var user = 'HTML5学堂'; var newUser = user; newUser = '码匠'; console.log(user); console.log(newUser); 实例2 var use
HTML5学堂
2018/03/13
3.5K0
Golang值类型和引用类型的区别
值类型:值类型包括基本数据类型(例如int、float64、bool等)和结构体。当一个值类型的变量被声明时,会在内存中分配一块空间来存储它的值。如果把一个值类型的变量赋值给另一个变量或作为函数参数传递时,会将这个值复制一份,两份值在内存中互不影响。
运维开发王义杰
2023/08/21
5050
Golang值类型和引用类型的区别
区间更新与点值
#include<bits/stdc++.h> using namespace std; const int MAXN=100005; int n; int bit[MAXN]; int c[MAXN],b[MAXN]; int lowbit(int x) {     return x & (-x); } void updata(int k,int v){//更新区间     while(k>0){         bit[k]+=v;         k-=lowbit(k);  
用户2965768
2018/08/30
5580
Java有值类型吗?
有人看了我之前的文章『Swift 语言的设计错误』,问我:“你说 Java 只有引用类型(reference type),但是根据 Java 的官方文档,Java 也有值类型(value type)和引用类型的区别的。比如 int,boolean 等原始类型就是值类型。” 现在我来解释一下这个问题。
哲洛不闹
2018/09/14
5.7K1
Java有值类型吗?
foreach 引发的值类型与引用类型思考
用都知道的一句话概括:“引用类型在堆上,栈上只保存引用;值类型即可存放于栈上也可存放于堆上,值类型变量直接存储值本身”。
雪飞鸿
2018/09/05
7440
foreach 引发的值类型与引用类型思考
C#系列之值类型和引用类型
    这几天一直在思考这章讨论什么, 在上一章讨论string的时候牵涉到引用类型,那么我们这一章讨论讨论一下,值类型和引用类型。
陈珙
2018/09/12
7730
C#系列之值类型和引用类型
再聊一次值类型和引用类型
为什么提出这样看似很浅显的问题,是因为有次我在使用ArraySegment<byte>值类型时,有感而发。
有态度的马甲
2023/04/27
3050
再聊一次值类型和引用类型
面向对象(四)-值类型与引用类型详解
类型被分为两种:值类型(整数,bool struct char 小数)和引用类型(string 数组 自定义的类,内置的类)。
孙寅
2020/06/02
9860
C#可空值类型
1. 可空类型修饰符(?)   引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。   例如:string str=null; 是正确的,int i=null; 编译器就会报错。
_一级菜鸟
2021/08/10
1.4K0
[C#1] 3-基元类型、引用类型和值类型、装箱拆箱
1.基元类型 编译器直接支持的数据类型成为基元类型。基元类型与FCL中的类型有直接的映射关系[int=Int32],这样我们可以简化的方式书写代码,并且编译后的IL和直接使用FCL中的数据类型是完全相同的。 Checked和Unchecked操作: Byte b=100; b=(Byte)(b+200); CLR只在32位和64位上进行算数运算,所以b首先会被转换为32位的值再和100相加,得到的是32位的值,接着转型为Byte,再然后将其放入b的存储堆栈。但是b的结果是44,反生了溢出,并不是期望的300
blackheart
2018/01/19
9510
Golang 的类型与零值
Golang 中定义不同类型的变量,不是通过声明就是通过 make 或 new 。 未显式初始化时,将被赋予一个默认值,该默认值便为该类型的零值。不同的类型有不同的零值。
恋喵大鲤鱼
2022/05/09
4140

相似问题

Server类型浇铸行为

13

浇铸到模板类型

33

字典中包含的AnyObject类型的浇铸值

10

重写等号和类型浇铸

30

浇铸值型常数

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文