public class 不同创建数组方式 { public static void main(String[] args) { //第一种 int[] score=new int[3]; score[0]=1; score[1]=2; score[2]=3; //score[3]=1;//越界 //System.out.println(score[3]); //第二种 int score1[]; score1=new int[5]; //第三种 int[] score2= {12,34,45}; //第四种 int[] score3=new int[] {23,45,67}; //输出 System.out.println(score);//输出内存地址 for(int a:score) { System.out.println(a); } } }
时间: 2023-11-25 07:06:58 浏览: 38
这段代码演示了Java中四种不同的创建数组方式,并对数组进行了一些操作和输出。具体解释如下:
- 第一种创建方式:使用`new`关键字创建一个长度为3的整型数组,然后分别赋值为1、2、3。注意,数组下标从0开始,所以`score[3]`会越界。最后使用增强for循环遍历数组并输出每个元素的值。
- 第二种创建方式:先声明一个整型数组`score1`,然后使用`new`关键字创建一个长度为5的整型数组,并将其赋值给`score1`。最后并没有对数组进行赋值操作。
- 第三种创建方式:使用大括号{}初始化一个长度为3的整型数组,元素分别为12、34、45。注意,这种方式只能在定义数组时使用。
- 第四种创建方式:使用`new`关键字创建一个长度为3的整型数组,然后使用大括号{}在数组创建时直接初始化元素,元素分别为23、45、67。
- 输出:使用`System.out.println()`输出数组的内存地址,然后使用增强for循环遍历数组并输出每个元素的值。
总的来说,Java中创建数组的方式比较灵活,开发者可以根据自己的需求选择不同的方式来创建数组。
相关问题
public class 数组 { public static void main(String[] args) { int[] score; score=new int[5]; score[0]=1; score[1]=1; score[2]=1; score[3]=1; score[4]=1; byte[] array=new byte[10]; String[] array1=new String[10]; } }
这段代码定义了三个数组:`score`、`array`、`array1`。具体解释如下:
- `score`:使用`new`关键字创建一个长度为5的整型数组,然后分别赋值为1、1、1、1、1。这里没有使用大括号{}直接初始化数组元素,而是在创建后分别对每个元素进行了赋值。
- `array`:使用`new`关键字创建一个长度为10的字节数组,数组中每个元素都是默认值`0`。
- `array1`:使用`new`关键字创建一个长度为10的字符串数组,数组中每个元素都是默认值`null`。
总的来说,Java中的数组可以存储不同的数据类型,包括整型、字节型、字符串等等。在创建数组时需要指定数组的长度,然后根据需求对数组元素进行赋值。
import java.util.*; public class Main { public static void main(String[] args) { TreeMap<String, Student> map = new TreeMap<String,Student>(); Scanner sc = new Scanner(System.in); while(true){ String ID = sc.next(); if(ID.equals("end")){ break; } String name = sc.next(); int score = sc.nextInt(); Student student = new Student(ID,name,score); map.put(ID,student); } Set<String> keyset = new TreeSet<>(); keyset = map.keySet(); for(String key:keyset){ Student student = map.get(key); System.out.println(student.getID() + " " + student.getName() + " " + student.getScore()); } } } class Student{ private String ID;//学号 private String name;//姓名 private int score;//成绩 public Student() { } public Student(String ID, String name, int score) { this.ID = ID; this.name = name; this.score = score; } public String getID() { return ID; } public void setID(String ID) { this.ID = ID; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } }我这样的代码要改成由从小到大变为由大到小排列,应该怎么处理
可以通过实现 Comparator 接口,并重写 compare 方法来实现 TreeMap 的排序方式的改变。具体的做法是,定义一个新的类 MyComparator 实现 Comparator 接口,在 compare 方法中将两个 Student 对象的成绩 score 进行比较,选择大的那个进行排序。然后在 TreeMap 的构造函数中传入 MyComparator 对象即可。
下面是修改后的代码:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
TreeMap<String, Student> map = new TreeMap<String, Student>(new MyComparator());
Scanner sc = new Scanner(System.in);
while (true) {
String ID = sc.next();
if (ID.equals("end")) {
break;
}
String name = sc.next();
int score = sc.nextInt();
Student student = new Student(ID, name, score);
map.put(ID, student);
}
Set<String> keyset = new TreeSet<>();
keyset = map.keySet();
for (String key : keyset) {
Student student = map.get(key);
System.out.println(student.getID() + " " + student.getName() + " " + student.getScore());
}
}
}
class Student {
private String ID;//学号
private String name;//姓名
private int score;//成绩
public Student() {
}
public Student(String ID, String name, int score) {
this.ID = ID;
this.name = name;
this.score = score;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
class MyComparator implements Comparator<String> {
TreeMap<String, Student> map = new TreeMap<String, Student>();
public MyComparator() {
}
public MyComparator(TreeMap<String, Student> map) {
this.map = map;
}
@Override
public int compare(String o1, String o2) {
Student s1 = map.get(o1);
Student s2 = map.get(o2);
if (s1.getScore() < s2.getScore()) {
return 1;
} else if (s1.getScore() > s2.getScore()) {
return -1;
} else {
return 0;
}
}
}
```
在 MyComparator 类中,我们将 TreeMap 对象作为成员变量传入,这样在 compare 方法中就可以通过 map.get() 方法获取到相应的 Student 对象,进而进行比较。通过此方法,就可以实现由大到小的排序方式。
阅读全文