「java权重list」java概率和权重

博主:adminadmin 2022-12-23 21:06:11 70

本篇文章给大家谈谈java权重list,以及java概率和权重对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

请教Java集合中List的用法

你的第一种使用方式是JDK1.5才有的书写方式,叫泛型。

这确实和JDK的版本有关的。JDK1.5以前的版本(不包括1.5版本)是不支持的。如果你使用了JDK1.4的编译器,那么你的第一句是不能被编译通过的。

当你使用第一种方式书写时。那么,list中就必须储存String类型的数据。而不能储存别的类型数据了。当你使用后面的这种书写方式时,就没有类型限制了。

不过,推荐使用第一种方式,这样代码的可读性和以后的维护会比较方便。

希望对比有帮助。

java按权重选取对象,大家知道怎么做吗?

int rand = 49;//随机数

int sum= 0;

List大海 list = new ArrayList大海();//假设这是一个武将列表

for(int i=0;ilist.size();i++){

sum = list.get(i).getWeight();//大海的出现机率

if(rand=sum){

return i;//返回该武将对应的索引

}

}

设计一种java数据结构,按照权重进行排序

public enum SortBy {

Number,

Weights1,

Weights2

}

import java.util.Comparator;

 

public class MyComparator implements ComparatorStudent{

 

private SortBy sortBy;

 

public MyComparator (SortBy sortBy){

this.sortBy = sortBy;

}

 

@Override

public int compare(Student s1, Student s2) {

switch (this.sortBy) {

case Weights1:

return s1.getWeights1() - s2.getWeights1();

case Weights2:

return s1.getWeights2() - s2.getWeights2();

default:

return s1.getNumber() - s2.getNumber();

}

}

}

import java.util.Collections;

import java.util.Comparator;

import java.util.LinkedList;

import java.util.List;

 

public class Student {

private int number;

private int weights1;

private int weights2;

 

public Student(int number, int weights1, int weights2) {

this.number = number;

this.weights1 = weights1;

this.weights2 = weights2;

}

 

public int getNumber() {

return this.number;

}

 

public int getWeights1() {

return this.weights1;

}

 

public int getWeights2() {

return this.weights2;

}

 

public static void main(String[] args){

final Student s1 = new Student(1, 20, 300);

final Student s2 = new Student(2, 10, 100);

final Student s3 = new Student(3, 30, 200);

 

final ListStudent array = new LinkedListStudent();

array.add(s1);

array.add(s2);

array.add(s3);

 

 

final ComparatorStudent numberComparator = new MyComparator(SortBy.Number);

Collections.sort(array, numberComparator);

System.out.println("sort by number");

System.out.print("Number: ");

for(Student s: array){

System.out.print(s.getNumber() + " ");

}

System.out.println("\n\n");

 

 

final ComparatorStudent weights1Comparator1 = new MyComparator(SortBy.Weights1);

System.out.println("sort by weights1");

System.out.print("Number: ");

Collections.sort(array, weights1Comparator1);

for(Student s: array){

System.out.print(s.getNumber() + " ");

}

System.out.println("\n\n");

 

final ComparatorStudent weights2Comparator = new MyComparator(SortBy.Weights2);

System.out.println("sort by weights2");

System.out.print("Number: ");

Collections.sort(array, weights2Comparator);

for(Student s: array){

System.out.print(s.getNumber() + " ");

}

System.out.println("\n\n");

}

}

sort by number

Number: 1 2 3

 

 

sort by weights1

Number: 2 1 3

 

 

sort by weights2

Number: 2 3 1

我要在java中定义list

ListStudent list= new ArrayListStudent ();

Student s= new Student();

list.add(s) // 循环存、、、

Iterator it = list.iterator();

if(it.hasNext()){

for(int i= 0; ilist.size(); i++){

Student s=(Student) list.get(it.next());

}

} //循环取

JAVA中的List的使用

ListE([]内的内容可省略),与数组类似:

实例化:List[数据类型] list = new ArrayList[数据类型]();

获得集合内元素个数:list.size();

添加元素:

默认添加:list.add(e);

指定下标添加(添加后下标后的元素向后挪一位):list.add(index,e);

删除元素:

返回是否删除:list.remove(e);

直接删除指定下标的元素(只删除找到的第一个相符合的元素):list.remove(index);

替换元素(替换掉指定下标的元素):list.set(index,e);

取出元素:list.get(index);

清空集合:list.clear();

判断集合中是否存在某个元素(存在返回true,不存在返回false):list.contains(e);

对比两个集合中的所有元素:

两个对象一定相等:list.equals(list2);

两个对象不一定相等:list.hashCode() == list2.hashCode();

(两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象。)

获得元素下标:

元素存在则返回找到的第一个元素的下标,不存在则返回-1:list.indexOf(e);

元素存在则返回找到的最后一个元素的下标,不存在则返回-1:list.lastIndexOf(e);

判断集合是否为空(空则返回true,非空则返回false):list.isEmpty();

返回Iterator集合对象:list.iterator();

将集合转换为字符串:list.toString();

截取集合(从fromIndex开始在toIndex前结束,[fromIndex,toIndex)):list.subList(fromIndex,toIndex);

将集合转换为数组:

默认类型:list.toArray();

指定类型(objects为指定类型的数组对象,并将转换好的数组赋值给objects数组):list.toArray(objects);

以上为List常用的方法。

java实现最大权重单增序列

import java.util.Scanner;

public class Main {

public static int data[] = null;

public static int weight[] = null;

public static int res[] = null;

/**

 * @param args

 */

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner scan = new Scanner(System.in);

System.out.println("输入序列个数:");

int n = 0;

n = scan.nextInt();

System.out.println("输入"+n+"个数(空格隔开):");

data = new int[n];

for (int i = 0; i  n; ++i) {

data[i] = scan.nextInt();

}

System.out.println("输入"+n+"个数的权重(空格隔开):");

weight = new int[n];

for (int i = 0; i  n; ++i) {

weight[i] = scan.nextInt();

}

doit(n);

int max = res[0];

int k = 0;

for (int i = 1; i  n; ++i) {

if (max  res[i]) {

max = res[i];

k = i;

}

}

System.out.println("最大权值:"+max);

System.out.println("序列为:");

print(k);

System.out.println();

}

public static void doit(int n) {

res = new int[n];

for (int i = 0; i  n;  ++i) {

res[i] = weight[i];

for (int j = 0; j  i; ++j) {

if (data[i]  data[j]  res[i]  weight[i]+res[j]) {

res[i] = weight[i]+res[j]; 

}

}

}

}

public static void print(int k) {

for (int i = k-1; i = 0; --i) {

if (res[i]+weight[k] == res[k]) {

print(i);

}

}

System.out.print(" "+data[k]);

}

}

输入样例:

 输入序列个数:

  5

输入5个数(空格隔开):

  1 4 2 3 9

输入5个数的权重(空格隔开):

  1 10 1 1 1

输出样例

  最大权值:12

 序列为:

     1 4 9

注:序列可能不唯一,就输出了一组

java权重list的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java概率和权重、java权重list的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。