Java 更改arraylist中的值
我有一个Java 更改arraylist中的值,java,arraylist,Java,Arraylist,我有一个布尔数组列表,其中填充了100个false 我想更改arraylist中的每个x值。同样是x=1,每隔一个值就会改变[假,真,假,真,假]如果x=2,每两个值就会改变一次。我已经做了几个小时了,但还是弄不懂。在这个网站上提问是我最后的选择 这是我所拥有的 public void changeValues(int x){ int d = x + 1; x-=1; int i = 0; while (x <= arrayList.size()){
布尔数组列表
,其中填充了100个false
我想更改arraylist中的每个x值。同样是x=1
,每隔一个值就会改变[假,真,假,真,假]
如果x=2
,每两个值就会改变一次。我已经做了几个小时了,但还是弄不懂。在这个网站上提问是我最后的选择
这是我所拥有的
public void changeValues(int x){
int d = x + 1;
x-=1;
int i = 0;
while (x <= arrayList.size()){
if (arrayList.get(x) == false){
arrayList.add(x,true);
} else {
arrayList.add(x,false);
}
x+=d;
if(x == arrayList.size()){
break;
}
}
System.out.print(arrayList);
}
public void changeValues(int x){
int d=x+1;
x-=1;
int i=0;
而(xFirst,add
在指定索引之后添加元素,而不是设置它
其次,您混合了x和loop index变量,这导致了完全错误的结果(我假设它抛出ArrayIndexOutOfBoundException
)
其实实现非常简单:
for (int i = x; i < arrayList.size(); i += x+1) {
arrayList.set(i, true);
// or arrayList.set(i, !arrayList.get(i)) if you want to negate the value
}
for(int i=x;i
首先,add
在指定索引后添加元素,而不是设置它
其次,您混合了x和loop index变量,这导致了完全错误的结果(我假设它抛出ArrayIndexOutOfBoundException
)
其实实现非常简单:
for (int i = x; i < arrayList.size(); i += x+1) {
arrayList.set(i, true);
// or arrayList.set(i, !arrayList.get(i)) if you want to negate the value
}
for(int i=x;i
使用Set而不是add
Add将指定的元素追加到此列表的末尾或指定的索引处
Set将替换它。使用Set而不是add
Add将指定的元素追加到此列表的末尾或指定的索引处
Set将替换它。您必须修改该值以不添加新的val。使用以下代码以所述格式获取输出
public void changeValues(int x){
ArrayList<Boolean> list = new ArrayList<Boolean>();
//From question -> that is filled with 100 falses.
list.add(false);
int listSize = list.size();
for (int i = x; i < listSize; i += x + 1) {
list.set(i, true); //Works for x=1
if (x == 2 && i+1 < listSize) {
list.set(i + 1, true); //Works for x=2
}
}
System.out.println(list);
}
x=2的输出
[false, false, true, true, false]
您必须修改该值才能不添加新的val。请使用以下代码以上述格式获取输出
public void changeValues(int x){
ArrayList<Boolean> list = new ArrayList<Boolean>();
//From question -> that is filled with 100 falses.
list.add(false);
int listSize = list.size();
for (int i = x; i < listSize; i += x + 1) {
list.set(i, true); //Works for x=1
if (x == 2 && i+1 < listSize) {
list.set(i + 1, true); //Works for x=2
}
}
System.out.println(list);
}
x=2的输出
[false, false, true, true, false]
public void changeValues(int x){
int length=arrayList.size();
Collections.fill(arrayList,Boolean.TRUE);
对于(int a=0;a
虽然还没有测试代码,但我想这就是你想要的。希望它能有所帮助:)publiccoodchangevalues(intx){
int length=arrayList.size();
Collections.fill(arrayList,Boolean.TRUE);
对于(int a=0;a
虽然还没有测试代码,但我想这就是您正在寻找的。希望它能有所帮助:)使用Java 8,您可以通过在一个:
final int size=100;
最终整数间隔=x+1;
List List=IntStream.rangeClosed(1,大小)
.mapToObj(数值->数值%gap==0)
.collect(Collectors.toList());
系统输出打印项次(列表);
使用Java 8,您可以通过检查索引%x==0来制定解决方案,方法是:
final int size=100;
最终整数间隔=x+1;
List List=IntStream.rangeClosed(1,大小)
.mapToObj(数值->数值%gap==0)
.collect(Collectors.toList());
系统输出打印项次(列表);
(我建议您始终发布
import java.util.ArrayList;
导入java.util.List;
公开课考试{
最终静态int-arrayListSize=10;
静态列表arrayList=新建arrayList();
公共静态void main(字符串[]args){
变化值(3);
}
公共静态void changeValues(int changeValueStep){
//添加并检查changeValueStep是否为螺母0。
布尔值=假;
for(int i=0;i
(我建议您始终发布
import java.util.ArrayList;
导入java.util.List;
公开课考试{
最终静态int-arrayListSize=10;
静态列表arrayList=新建arrayList();
公共静态void main(字符串[]args){
变化值(3);
}
公共静态void changeValues(int changeValueStep){
//添加并检查changeValueStep是否为螺母0。
布尔值=假;
for(int i=0;i
请检查此项,我认为它将像您正在寻找的一样工作:
public class ChangeValue{
public static void main(String[] args) {
List arrayList = new ArrayList<Boolean>();
for (int i = 0; i < 100; i++) {
arrayList.add(false);
}
System.out.println("Before:" + arrayList);
for (int i = 0; i < 100; i++) {
arrayList.add(i,true);
}
new ChangeValue().changeValues(1, arrayList);
}
public void changeValues(int x, List<Boolean> arrayList) {
int d = x+1;
x -= x;
System.out.println("ff:" + arrayList.size());
while (x <= arrayList.size()) {
if (arrayList.get(x) == true) {
arrayList.add(x, false);
}
x += d;
if (x == arrayList.size()) {
break;
}
}
System.out.print("After:" + arrayList);
}
public static void main(String[] args) {
List arrayList = new ArrayList<Boolean>();
for (int i = 0; i < 100; i++) {
arrayList.add(false);
}
System.out.println("Before:" + arrayList);
for (int i = 0; i < 100; i++) {
arrayList.add(i,true);
}
new StateFlowerBird().changeValues(1, arrayList);
}
public void changeValues(int x, List<Boolean> arrayList) {
int d = x+1;
x -= x;
System.out.println("ff:" + arrayList.size());
while (x <= arrayList.size()) {
if (arrayList.get(x) == true) {
arrayList.add(x, false);
}
x += d;
if (x == arrayList.size()) {
break;
}
}
System.out.print("After:" + arrayList);
}
}
公共类ChangeValue{
公共静态void main(字符串[]args){
List arrayList=新建arrayList();
对于(int i=0;i<100;i++){
arrayList.add(false);
}
System.out.println(“之前:“+arrayList”);
对于(int i=0;i<100;i++){
arrayList.add(i,true);
}
新的ChangeValue().ChangeValue(1,arrayList);
}
公共void changeValues(int x,列表arrayList){
int d=x+1;
x-=x;
System.out.println(“ff:+arrayList.size());
(x请检查此项,我认为它将像您所寻找的一样工作:
public class ChangeValue{
public static void main(String[] args) {
List arrayList = new ArrayList<Boolean>();
for (int i = 0; i < 100; i++) {
arrayList.add(false);
}
System.out.println("Before:" + arrayList);
for (int i = 0; i < 100; i++) {
arrayList.add(i,true);
}
new ChangeValue().changeValues(1, arrayList);
}
public void changeValues(int x, List<Boolean> arrayList) {
int d = x+1;
x -= x;
System.out.println("ff:" + arrayList.size());
while (x <= arrayList.size()) {
if (arrayList.get(x) == true) {
arrayList.add(x, false);
}
x += d;
if (x == arrayList.size()) {
break;
}
}
System.out.print("After:" + arrayList);
}
public static void main(String[] args) {
List arrayList = new ArrayList<Boolean>();
for (int i = 0; i < 100; i++) {
arrayList.add(false);
}
System.out.println("Before:" + arrayList);
for (int i = 0; i < 100; i++) {
arrayList.add(i,true);
}
new StateFlowerBird().changeValues(1, arrayList);
}
public void changeValues(int x, List<Boolean> arrayList) {
int d = x+1;
x -= x;
System.out.println("ff:" + arrayList.size());
while (x <= arrayList.size()) {
if (arrayList.get(x) == true) {
arrayList.add(x, false);
}
x += d;
if (x == arrayList.size()) {
break;
}
}
System.out.print("After:" + arrayList);
}
}
公共类ChangeValue{
公共静态void main(字符串[]args){
List arrayList=新建arrayList();
对于(int i=0;i<100;i++){