定义一个MyList泛型类(定义成泛型类)
时间: 2023-08-29 11:05:36 浏览: 78
好的,为您解答:可以定义如下MyList泛型类
```java
public class MyList<T> {
private T[] array;
private int size;
public MyList() {
array = (T[]) new Object[10];
size = 0;
}
public void add(T element) {
if (size == array.length) {
array = Arrays.copyOf(array, array.length * 2);
}
array[size++] = element;
}
public T get(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);
}
return array[index];
}
public int size() {
return size;
}
}
```
以上就是MyList泛型类的定义,希望对您有所帮助。
相关问题
java定义一个MyList泛型类
好的,下面是一个简单的Java泛型类的示例代码:
```java
public class MyList<T> {
private T[] elements;
private int size;
public MyList() {
elements = (T[]) new Object[10];
size = 0;
}
public void add(T element) {
if (size < elements.length) {
elements[size] = element;
size++;
} else {
// 如果数组已满,可以实现动态扩容
// 这里只是简单地抛出一个异常
throw new IndexOutOfBoundsException("List is full");
}
}
public T get(int index) {
if (index >= 0 && index < size) {
return elements[index];
} else {
throw new IndexOutOfBoundsException("Index out of bounds");
}
}
public int size() {
return size;
}
}
```
这个示例中,`MyList` 是一个泛型类,使用了类型参数 `T`。通过在类名后面使用 `<T>` 来定义泛型类。在类的内部,我们可以使用 `T` 来代表任意类型。
`MyList` 类内部使用一个数组来存储元素,并提供了 `add` 方法用于向列表中添加元素,`get` 方法用于获取指定位置的元素,以及 `size` 方法用于获取列表的大小。
请注意,在创建泛型数组时,我们需要使用类型转换来避免编译器警告。在示例代码中,我们使用 `(T[]) new Object[10]` 来创建一个泛型数组。
如何定义和使用泛型类?
泛型类是一个具有类型参数的类,可以在类的定义中使用这些类型参数。泛型类的定义使用尖括号(<>)来指定其类型参数,类的方法和属性可以使用这些类型参数。
以下是一个泛型类的示例:
```java
public class MyList<T> {
private T[] array;
public MyList(int size) {
array = (T[]) new Object[size];
}
public T get(int index) {
return array[index];
}
public void set(int index, T value) {
array[index] = value;
}
}
```
在这个示例中,我们声明了一个泛型类 `MyList`,它有一个类型参数 `T`。我们可以在类的定义中使用这个类型参数来声明数组 `array`。注意,我们在构造函数中使用了类型转换 `(T[])`,这是因为 Java 不允许我们直接创建泛型数组。
我们可以通过以下方式使用这个泛型类:
```java
MyList<String> list = new MyList<>(10);
list.set(0, "Hello");
String greeting = list.get(0);
```
在这个示例中,我们创建了一个 `MyList` 类型的对象,并指定 `T` 的类型参数为 `String`。我们可以使用 `set` 方法将字符串 "Hello" 存储在数组的第一个位置,并使用 `get` 方法获取该位置的值。
使用泛型类可以让我们更加灵活地编写可重用的代码,因为我们可以在使用时指定类型参数来适应不同的需求。
阅读全文